您的位置:首页 > 职场人生

java面试题整理(三)

2015-04-25 17:35 281 查看
1、bean 实例的生命周期

bean 会话bean ,实体bean和消息驱动bean

会话bean 分 stateful bean stateless bean 和singleton bean

有状态的bean 是用来记录服务器与某个客户端的一次会话(包含多次操作),bean 在会话开始的时候创建,在客户端丢弃引用的时候丢弃

无状态的bean 是用来执行客户端对服务器的一次访问请求,不需要为之维护状态,所以在客户端请求时产生,并在请求结束时消失

单例的bean 是用于在不同客户端会话之间共享数据或者是为了保护到单例资源而存在的,它在应用开启时产生,在应用结束时消亡

消息驱动bean 用于异步的处理请求,他的生命周期由缓冲池控制,在需要用的时候查找实例,如果不存在则生成实例,由缓冲池决定是否清理对象

实体bean 实体bean分4个状态 新建态 托管态 分离态和移出态 实体bean的生命周期由实体管理器控制。

2、如何设定的weblogic的热启动模式(开发模式)与产品发布模式?

可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一。或者修改服务的启动文件或者commenv文件,增加set PRODUCTION_MODE=true。

3、说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法

Session Facade Pattern:使用SessionBean访问EntityBean

Message Facade Pattern:实现异步调用

EJB Command Pattern:使用Command JavaBeans取代SessionBean,实现轻量级访问

Data Transfer Object Factory:通过DTO Factory简化EntityBean数据提供特性

Generic Attribute Access:通过AttibuteAccess接口简化EntityBean数据提供特性

Business Interface:通过远程(本地)接口和Bean类实现相同接口规范业务逻辑一致性

EJB架构的设计好坏将直接影响系统的性能、可扩展性、可维护性、组件可重用性及开发效率。项目越复杂,项目队伍越庞大则越能体现良好设计的重要性

(没涉及过 需要仔细看)
4、GC是什么? 为什么要有GC?

  GC是垃圾收集器。

GC用来内存回收,一般是一个默认低优先级的线程,在JVM的管理下对可释放内存进行回收。有多种GC的模型,一种是在需要GC工作时 GC对整个工作区进行回收,这样会导致可用性会比较差,在GC回收时 JVM不能提供服务; 一种是对内存进行切块,GC一次对一个区块进行回收,性能会比之前好一点,但是这种方式会导致内存碎片化,于是需要考虑迁移保留在内存中的数据来减少内存碎片,于是需要采取方法,回收之后的数据复制到另一块可用区域中,减少碎片化,但是这里存在一个问题就是不同区块回收的频率会不同,部分区块内存在的内容可能经常被替换,也就是需要频繁的GC工作,部分的区块需要GC工作的频率较低,那么根据这样的需求最后产生了将内存分区域的模型,刚申请得到的区块被放在了新生代,经过一段时间没回收,那么这部分的内容将被转到长久区域,两片区域GC扫描的频率存在差别。

另外补充一点关于对象回收,对象生命周期消亡存在着几个时间点,1个是始于引用,另外1个就是超出作用域
5、数组有没有length()这个方法? String有没有length()这个方法?

数组没有length()这个方法,有length的属性。

String有有length()这个方法。
6、介绍一下Log4J特点及用法?(5)

Log4J 是Apache的一个开发源代码项目,它是一个日志操作包,可以指定日志信息的输出地,如控制台、文件、GUI组件等。还可以控制每一条日志的输出格式,定义日志的输出级别。

要使用Log4J总体上可以分为下面的3步

1 获取日志记录器

2读取日志配置文件,文件名默认为 Log4j.properties

3输出日志信息

7、叙述一下spring是怎么和struts整合的。(5)

首先,Spring 的 ContextLoaderPlugin 为 Struts 的 ActionServlet 装载 Spring 应用程序环境。,简单地向您的 struts-config.xml 文件添加该插件,

<plug-in className=

"org.springframework.web.struts.ContextLoaderPlugIn">

<set-property property=

"contextConfigLocation" value="/WEB-INF/beans.xml"/>

</plug-in>

通过在 struts-config 动作映射中注册一个代理类(DelegatingActionProxy)来实现,这样就把struts动作交给spring来管理,代理负责在 Spring 环境中查找 Struts 动作。由于动作在 Spring 的控制之下,所以它可以填充动作的 JavaBean 属性,并为应用诸如 Spring 的 AOP 拦截器之类的特性带来了可能。
8、在struts中怎样配置多个strust-config.xml(4)

在web.xml文件中,配置一个<servlet>节点,为其指定多个

<init-param>

<param-name>config/unfilter</param-name>

<param-value>/WEB-INF/unfilter/struts-config.xml</param-value>

</init-param>节点,就可以实现多个struts-config.xml配置文件。
9、运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: