java面试题集锦(4)

2019-06-02 13:59

e: 还有 jsp:forward

76、 给一个你最常见的runtime exception?

答:NullPointerException

77、 如何实现servelet单线程模式

答:<%@ page isThreadSafe=\

78、Array和Vection的区别?

答:array 长度固定,越界时回报错,可以存储基本类型和对象类型,可以通过length属性得到数组长度。

vector长度不固定,长度会自己增加和删减,可以通过size()方法获取长度,只能存储对象类型。 所以在用法上选择,只需要考虑2个问题: 1,是否支持基本型数据 2,长度是否固定

79、 解释MVC和MVC怎么运用到项目中去。

答:MVC的标准定义是:

模型(Model)代表应用程序的数据(data)和用于控制访问和修改这些数据的业务规则(business rule)。通常模型被用来作为对现实世界中一个处理过程的软件近似。

视图(View)被用来组织模型的内容,它从模型那里获得数据并指定这些数据如何表现。

控制器(Controller)定义了应用程序的行为;它负责对来自视图的用户要求进行解释,并把这些要求映射成相应的行为,这些行为由模型负责实现。

80、 JAVA中session监听器和Attribute监听器的区别

答:servlet中对session的监听有很多接口,功能很灵活,最常用的是监听Session和Attribute。这里要澄清一下概 念,servlet中的session监听和Attribute监听含义有差别,session监听指的不是我们一般所理解的放置一个session或者 销毁一个session,这是Attribute监听的功能,因为servlet中放置session的语法是 session.setAttribute(“session名”,要放入的对象)。而session监听,监听的是HTTP连接,只要有用户与 server连接,就算连接的是一个空白的jsp页面,也会触发session事件,所以此处的session实际上指的是connection,用来统 计当前在线用户数最合适了。

81、 java.lang.reflect包中的三个类Field、Method、Constructor的简单介绍

答:java.lang.reflect包中的三个类Field、Method、Constructor相应的描述了一个类的字段、方法、构造函数。这三个类 都有一个称作getName的方法,他返回相应的名字;Field类有个getType方法,他返回描述字段类型的class类型的对象.

Constructor类提供关于类的单个构造方法的信息以及对它的访问权限。这个类和Field类不同,Field类封装了反射类的属性,而Constructor类则封装了反射类的构造方法。. Method类:提供关

于类或接口上单独某个方法的信息。所反映的方法可能是类方法或实例方法(包括抽象方法)。 这个类不难理解,它是用来封装反射类方法的一个类。

82、struts的核心类?

答:1.ActionServlet类:

是一个前端控制器,将request转发给RequestProcessor来处理。提供了一组能够被Action对象使用的方法:

(1) 动态的添加和删除,只影响应用程序当前的实例

public void addFormBean(ActionFormBean formBean) public void removeFormBean(ActionFormBean formBean) public void addForward(ActionForward actionForward) public void removeForward(ActionForward actionForward) public void addMapping(ActionMaping actionMapping) public void removeMapping(ActionMaping actionMapping) (2) 根据名称查找对象

public ActionFormBean findFormBean(String name) public ActionForward findForward(String name) public ActionMapping findMapping(String name) (3) 用来处理数据源

public void addDataSource(String key, DataSource ds) public DataSource findDataSource(String key) (4) 使用destroy()方法结束ActionServlet

(5) 使用reload()方法从struts配置文件将信息重新加载。

2.ActionMapping类:

ActionMapping类是ActionConfig的子类,实质上是对struts-config.xml的一个映射类,从中可以取得所有的配置信 息。将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServlet将ActionMapping传送到 Action类的perform()方法,Action将使用ActionMapping的findForward()方法,此方法返回一个指定名称的 ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null。 ActionMapping类的方法: (1) 可以在映射中动态添加ActionForward

public ActionForward findForward(String name) (2) 可以返回与映射关联的表单bean

public void addForward(ActionForward forward) (3) 可以返回映射的属性域(回话或请求) public String getName() (4) 可以返回映射的作用域 public String getScope()

3.RequestProcessor类

根据提交过来的url,如*.do从ActionMapping中得到相应的ActionForm和Action,然后将request参数对应到 ActionForm中,进行验证。如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionForward。

4.ActionForward类:

是对mapping中一个forward的包装,对应于一个url。

5.Action类:是框架包的核心,链接客户请求和业务操作,真正实现应用程序的事务逻辑,负责处理请求。其方法有:

(1) 所有Action类都扩展org.apache.struts.action.Action类,且覆盖类中定义的一个execute()方法。

处理非HTTP请求:

public ActionForward execute(ActionMapping action, ActionForm form,

ServletRequest request, ServletResponse response)

thorws IOException, ServletException 处理HTTP请求:

public ActionForward execute(ActionMapping action, ActionForm form, HttpServletResponse response)

thorws IOException, ServletException (2) 可以获得或设置与请求相关联的区域:

public Local getLocal(HttpServletRequest request)

public void setLocal(HttpServletRequest request, Local local) (3) 为应用程序获得消息资源:

public MessageResources getResources()

(4) 检查用户是否点击表单上的“取消”键,如果是,返回true: public Boolean isCancelled(HttpServletRequest request) (5) 当应用程序发生错误时,Action类存储错误信息:

public void saveErrors(HttpServletRequest request, ActionErrors errors)

6.DispatchAction类:

Struts提供了多种Action供选择使用。普通的Action只能通过调用execute执行一项任务,而DispatchAction可以根据配 置参数执行,而不是仅进入execute()函数,这样可以执行多种任务。如insert,update等。LookupDispatchAction可 以根据提交表单按钮的名称来执行函数。 83、Hibernate工作原理及为什么要用?

原理:

1.读取并解析配置文件

2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session

8.关闭SesstionFactory 为什么要用:

1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO

HttpServletRequest

request,

层的编码工作

3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

84、Hibernate的查询方式

Sql、Criteria,object comptosition Hql: 1、 属性查询

2、 参数查询、命名参数查询 3、 关联查询 4、 分页查询 5、 统计函数

85、Struts工作机制?为什么要使用Struts?

工作机制: Struts的工作流程:

在web应用启动时就会加载初始化ActionServlet,ActionServlet从 struts-config.xml文件中读取配置信息,把它们存放到各种配置对象 当ActionServlet接收到一个客户请求时,将执行如下流程.

-(1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息; -(2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;

-(3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法; -(4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActuibErrors对象, 就表示表单验证成功;

-(5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的 Action实例不存在,就先创建这个实例,然后调用Action的execute()方法; -(6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给 ActionForward对象指向的JSP组件;

-(7)ActionForward对象指向JSP组件生成动态网页,返回给客户; 为什么要用:

JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。

基于Struts开发的应用由3类组件构成:控制器组件、模型组件、视图组件

86、简述Spring的事务传播行为和隔离级别。

答:隔离级别:

ISOLATION_DEFAULT 这是一个PlatfromTransactionManager默认的隔离级别,使用数据库默认的事务隔离级别.另外四个与JDBC的隔离级别相对应

ISOLATION_READ_UNCOMMITTED 这是事务最低的隔离级别,它充许别外一个事务可以看到这个事务未提交的数据。这种隔离级别会产生脏读,不可重复读和幻像读。

ISOLATION_READ_COMMITTED 保证一个事务修改的数据提交后才能被另外一个事务读取。另外一个事务不能读取该事务未提交的数据。这种事务隔离级别可以避免脏读出现,但是可能会出现不可重复读和幻像读。

ISOLATION_REPEATABLE_READ 这种事务隔离级别可以防止脏读,不可重复读。但是可能出现幻像读。它除了保证一个事务不能读取另一个事务未提交的数据外,还保证了避免下面的情况产生(不可重复读)。

ISOLATION_SERIALIZABLE 这是花费最高代价但是最可靠的事务隔离级别。事务被处理为顺序执行。除了防止脏读,不可重复读外,还避免了幻像读。

87、简单自我介绍

88、Hashtable的原理,并说出HashMap与Hashtable的区别

答:HashTable的原理:通过节点的关键码确定节点的存储位置,即给定节点的关键码k,通过一定的函数关系H(散列函数),得到函数值H(k),将此值解释为该节点的存储地址.

HashMap 与Hashtable很相似,但HashMap 是非同步(unsynchronizded)和可以以null为关键码的. 89、解释下面关于J2EE的名词

答:(1)JNDI:Java Naming & Directory Interface,JAVA命名目录服务.主要提供的功能是:提供一个目录系统,让其它各地的应用程序在其上面留下自己的索引,从而满足快速查找和定位分布式应用程序的功能.

(2)JMS:Java Message Service,JAVA消息服务.主要实现各个应用程序之间的通讯.包括点对点和广播.

(3)JTA:Java Transaction API,JAVA事务服务.提供各种分布式事务服务.应用程序只需调用其提供的接口即可.

(4)JAF: Java Action FrameWork,JAVA安全认证框架.提供一些安全控制方面的框架.让开发者通过各种部署和自定义实现自己的个性安全控制策略. (5)RMI:Remote Method Interface,远程方法调用

90、EJB是基于哪些技术实现的?并说 出SessionBean和EntityBean的区别,StatefulBean和

StatelessBean的区别.

答:JB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现. 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 的实体来执行这个


java面试题集锦(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高级财务会计期末复习题一单选题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: