葵花宝典–java面试题

2014-04-22 06:30:01 阅读( 59 )

2316人 收藏本页

标签:Java面试题

1、说说你理解的“框架”,举个现实生活中框架的例子。
答案:框架(framework)是一个提供了可重用的公共结构的一个半成品。
框架这个词最早出现在建筑领域,指的是在建造房屋前期构建的建筑骨架,对应用程序来说,“框架”的意义也在于此,是应用程序的骨架,开发者可以在这个骨架上加上自己的

东西,完成符合自己需要的应用系统。
现实生活中“框架”的例子:
€€写一本书的时候,首先要先写书的目录(框架),然后再目录的基础上完善书的内容。

2、使用框架有什么好处?
答案:框架使混乱的东西变得结构化。如果没有框架的话,一千个人将写出一千种Servlet+JavaBean+JSP的代码。但一千个人只能写出一种基于Struts(一个开源的Java Web开发

框架)的Web应用程序。框架保证了我们的程序结构风格统一,从企业的角度,降低了培训成本和软件的维护成本。框架在结构统一和创造力之间维持着一个得体的平衡。

3、前面我们自定义的框架中,为什么要定义Action接口?
答案:一个接口是一些方法特征的集合,但没有方法的实现。接口中定义的方法在不同的地方被实现,可以具有完全不同的行为。
在我们自定义的框架中,定义Action接口,可以保证所有Action的实现类实现execute方法。

4、讲讲Struts开发的过程?
基于框架开发需要依据一定的开发流程。使用Struts实现一个功能时常采用如下的步骤:
(1)开发“模型”代码,包括:实体类、DAO接口和实现类、业务逻辑接口和实现类。
(2)创建并配置Form Bean和Action Bean。
(3)根据业务需要定义转发逻辑并创建jsp页面。
(4)编写Action Bean和JSP代码,并调试运行。

5、讲讲Struts运行的过程?
图参考
1)Web服务器启动时加载Struts,加载并分析struts配置文件(一般是struts-config.xml),保存配置文件中的配置信息到服务器内存中。
(2)当服务器接收到符合ActionServlet配置的url-pattern的请求后,请求首先转发给ActionServlet处理,ActionServlet根据配置信息根据请求路径找到需要处理请求的Action

Bean和与这个Action Bean对应的Form Bean,并将请求数据封装到Form Bean中,然后调用Action Bean中的方法处理请求。
(3)Action Bean中的方法调用模型组件并得到处理结果,根据处理结果通过返回ActionForward类型返回值的方式调用不同的视图组件。
(4)ActionServlet得到ActionForward类型的返回值,根据配置信息找到对应的jsp页面(也可能是Velocity模板),转发过去。
(5)处理结果返回给客户端浏览器。

6、Struts组件分几类,每一类具体由什么构成?
Struts组件分为:控制器组件、视图组件和模型组件。
控制器组件包括ActionServlet和自定义的Action Bean。
视图组件包括JSP页面,Form Bean等。
Struts本身不提供模型组件,对模型组件也没有具体要求。模型组件由普通的JavaBean组成。

7、说明什么是持久化,举例说明?
持久化是将程序数据在持久状态和瞬时状态间转换的机制。
JDBC就是一种持久化机制。文件IO也是一种持久化机制。
将水果做成罐头的方法也是。

8、说明什么是对象-关系映射?
持久态的数据一般保存在数据库中,是一种关系模型,如:商品数据保存在goods表里,GOODS_NAME字段保存商品的名称,GOODS_PRICE字段保存商品的价格。一条数据库记录对应

一件商品。
瞬时的数据一般以面向对象的方式被组织,保存在内存中,如:对应goods表,有com.jb.aptech.entity.Goods类,Goods类有name属性和price属性,对应goods表的GOODS_NAME字

段和GOODS_PRICE字段。对应商品表里保存衬衫商品的记录,有shirt对象。
我们看到,关系型数据和对象数据间存在着天然的映射关系,这种映射关系成为“对象-关系映射”,又称为ORM。

9、简述使用Hibernate有几个步骤?
(1)读取并解析配置文件,创建Configuration对象。类似于JDBC使用DataSource获取连接前,读取DataSource的配置文件。
(2)读取并解析映射信息,创建SessionFactory对象。类似于创建DataSource对象
(3)打开Session。类似于使用JDBC获得连接。
(4)开始一个事务(增、删、改操作必须,查询操作可选)。
(5)完成持久化操作。
(6)提交事务。
(7)关闭Session。

10、讲讲什么是依赖注入,给项目开发带来什么好处?
依赖注入是一种设计模式,用于降低程序组件间的偶合关系。通过明确地定义接口,独立地实现各组件,然后在程序运行的时候再将依赖的组件注入进来。比如PC机的设计,在定

义了内存条的接口规范后,主板和内存分别研制,在组装电脑的时候再插到一起。
使用依赖注入有如下好处:
(1)降低组件间的偶合关系,从而降低设计大型系统的复杂度。
(2)可以为同一结构提供多种实现,并方便地切换。

11、讲讲什么是AOP以及使用AOP好处?
AOP全称是面向方面编程,是将散布在系统各处的某个方面(如权限控制功能)同一实现的一种设计方式。
使用AOP有如下好处:
(1)将“方面”代码同一实现,提高了开发效率,保证了程序质量。
(2)“方面”代码在需要修改的时候只需修改一次。

12.讲讲使用Spring组装程序组件的好处?
(1)可以把程序组件间的依赖关系通过Spring以配置文件的形式管理,不需要在程序代码中对依赖的类硬编码。
(2)在程序间依赖发生变化的时候不需要修改程序代码,只需要修改配置文件。
(3)促进面向接口编程等有效实践,帮助我们构建更优秀的程序。

13. 讲讲什么是声明式事务以及配置的要点
声明式事务是不需要在代码对事务进行管理,而统一采用声明的方式对系统中事务进行管理的一种实现方式。
配置声明式事务时要明确声明以下几点:
(1)在什么地方提供事务支持,如:说明对哪些方法提供事务支持。
(2)提供什么样的事务支持,如:只读事务。

14.hibernate怎样取得一条数据.HQL方法

15.hibernate有几种查询方法

来自IT公司面试手册

下一篇:搞笑版Java面试

上一篇:xml有哪些解析技术?区别是什么?

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题