error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指
望程序能处理这样的情况。
exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生
的情况。
16、同步和异步有何异同,在什么情况下分别使用他们?
举例说明。
如果数据将在线程间共享。例如正在写的数据以后可能被另一个线程读到,或者正在读的
数据可能已经被另一个线程写过了,那么这些数据就是共享数据,必须进行同步存取。当
应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方
法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。
17、abstract class 和 interface 有什么区别?声明方法的存在而不
去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,
并为该类声明方法,但不能在该类中实现该类的情况。不能创建 abstract 类的实例。然而
可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象
构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否
则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中
实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多
继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。
接口只可以定义 static final 成员变量。接口的实现与子类相似,除了该实现类不能从接口
定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。
然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许
使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从
接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。
18、heap 和 stack 有什么区别。栈是一种线形集合,其添加和删除元素
的操作应在同一段完成。栈按照后进先出的方式进行处理。堆是栈的一个组成元素
19、forward 和 redirect 的区别 forward 是服务器请求资源,服务器直接
访问目标地址的 URL,把那个 URL 的响应内容读取过来,然后把这些内容再发给浏览器,
浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。
redirect 就是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址,一般来说
浏览器会用刚才请求的所有参数重新请求,所以 session,request 参数都可以获取。
20、EJB 与 JAVA BEAN 的区别?Java Bean 是可复用的组件,对 Java
Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean。但通常情况
下,由于 Java Bean 是被容器所创建(如 Tomcat)的,所以 Java Bean 应具有一个无参
的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。
Java Bean 实际上相当于微软 COM 模型中的本地进程内 COM 组件,它是不能被跨进程访
问的。Enterprise Java Bean 相当于 DCOM,即分布式组件。它是基于 Java 的远程方法
调用(RMI)技术的,所以 EJB 可以被远程访问(跨进程、跨计算机)。但 EJB 必须被布
署在诸如 Webspere、WebLogic 这样的容器中,EJB 客户从不直接访问真正的 EJB 组件,
评论0
最新资源