面试题5

来源:互联网 发布:executor java 编辑:程序博客网 时间:2024/06/08 18:06

 

22、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
答:允许继承或实现,因为匿名内部类就是在抽象类和接口的基础之上发展起来的。
23、Static Nested Class 和 Inner Class的不同。
  答:使用static声明的内部类就是外部类,可以通过外部类.内部类直接访问;普通的内部类是不能够直接被外部访问的,需要通过外部类实例再找到内部类实例。
24、sleep()和wait()有什么区别?
   答:sleep()Thread类中定义的方法,表示线程的休眠,会自动唤醒;wait()Object中定义的方法,需要手工调用notify()notifyAll()方法。
25、struts的流程
1 读取配置(初始化ModuleConfig对象)
 Struts框架总控制器(ActionServlet)是一个Servlet,在web.xml中配置成自动启动的servlet。读取配置文件(struts-config.xml)的配置信息,为不同的struts模块初始化相应的ModuleConfig对象:ActionConfigControlConfigFormBeanConfigForwardConfigMessageResourcesConfig
2 发送请求
用户提交表单或调用URLWeb应用程序器提交一个请求,请求的数据用HTTP协议上传给Web服务器。
3 填充FORM(实例化、复位、填充数据、校验、保存)
*.do请求)从ActionConfig中找出对应该请求的Action子类,如没有对应的Action,控制器直接转发给JSP或静态页面。如有对应的Action且这个Action有一个相应的ActionFormActionForm实例化并用HTTP请求的数据填充其属性,并且保存在ServletContext中(requestsession中),这样它们就可以被其它Action对象或者JSP调用。
4 派发请求
控制器根据配置信息ActionConfig将请求派发到具体的Action,相应的FormBean一并传给这个Actionexecute()方法。
5 处理业务
Action一般只包含一个execute方法,它负责执行相应的业务逻辑(调用其他业务模块)。完毕返回一个ActionForward对象,控制器通过改ActionForward对象来进行转发工作。
6 返回响应
Action根据业务处理的不同结果返回一个目标响应对象给总控制器,该目标响应对象对应一个具体的JSP页面或另一Action
7 查找响应(翻译响应)
总控制器根据业务功能Action返回的目标响应对象,找到对应的资源对象,通常是一个具体的JSP页面。
8 响应用户
目标响应对象将结果展现给用户目标响应对象(JSP)。
26、String 和StringBuffer的区别
 String类提供了数值不可改变的字符串。StringBuffer类提供的字符串可以进行修改。
27、int 和 Integer 有什么区别
    Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Intjava的原始数据类型,Integerjavaint提供的封装类。
28、Collection 和 Collections的区别。
   Collection是集合类的上级接口,继承于他的接口主要有Set List.
    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。
29、说出ArrayList,Vector, LinkedList的存储性能和特性
    ArrayListVector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
30、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。
   EJB包括Session BeanEntity BeanMessage Driven Bean,基于JNDIRMIJAT等技术实现。
SessionBean
J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来代表应用系统中用到的数据。
   
对于客户机,SessionBean是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
   
对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象视图,或是一个由现有企业应用程序实现的实体。
    Session Bean 
还可以再细分为 Stateful Session Bean  Stateless Session Bean ,这两种的 Session Bean都可以将系统逻辑放在 method之中执行,不同的是 Stateful Session Bean 可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的 Stateful Session Bean 的实体。Stateless Session Bean 虽然也是逻辑组件,但是他却不负责记录使用者状态,也就是说当使用者呼叫 Stateless Session Bean 的时候,EJB Container 并不会找寻特定的 Stateless Session Bean 的实体来执行这个 method。换言之,很可能数个使用者在执行某个 Stateless Session Bean  methods 时,会是同一个 Bean  Instance 在执行。从内存方面来看, Stateful Session Bean  Stateless Session Bean 比较, Stateful Session Bean 会消耗 J2EE Server 较多的内存,然而 Stateful Session Bean 的优势却在于他可以维持使用者的状态。