当前位置:

《java面试宝典》三大框架部分

机器助手 |  2025-07-13
 118人浏览

三大框架部分:
Struts2 部分:
2.介绍一下Struts的工作原理?
1.读取配置,加载 struts 控制器.
2.用户请求 用户提交表单或调用 URL 向 WEB 应用程序服务器提交一个请求,请求的数据
用 HTTP 协议上传给 WEB 服务器。
3.通过 struts 控制器进行处理,
4.经过一系列的拦截器处理
5.进行业务逻辑的处理
6.响应用户 JSP 将结果展现给用户。
为什么要用:
1. JSP、Servlet、JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用
这些技术构建的系统非常的繁乱。
2. 基于Struts开发的应用:
不用再考虑公共问题
专心在业务实现上
结构统一,易于学习、维护
新手也可写出好程序
3. struts 框架提供了哪些辅助功能
1 自动收集数据(成员变量)
2 支持类型转换
3 国际化
4 异常处理
5 标签
4. struts1 和 struts2 的区别
1 struts1 控制器 servlet struts2 控制器 filter
2 struts 收集数据时 ActionForm Struts2 成员变量
3 struts1 execute(Resquest,Response)
struts2 execute()
4 struts1 与 ServletAPI 耦合性强
struts2 与 ServletAPI 耦合性低


5 struts1 没有拦截器 struts2 有拦截器(可以使代码各司其职)
6 struts1 只能使用 jstl 标签,而 struts2 提供了 OGNL 表达式
Hibernate部分:
1. hibernate工作原理
1.读取并解析配置文件
2.读取并解析映射信息,创建SessionFactory
3.打开Sesssion
4.创建事务Transation
5.持久化操作
6.提交事务
7.关闭Session
8.关闭 SesstionFactory
为什么要用:
1. 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度
的简化DAO层的编码工作
3. hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持
各种关系数据库,从一对一到多对多的各种复杂关系。
4.Hibernate 是面向对象进行操作的
2. Hibernate 对象状态有哪几种,并简单介绍一下。
1.临时状态:内存对象,并没有保存在数据库
2.持久化状态 已经保存在数据库并纳入了 session 缓存中
3.游离状态 已经保存在数据库中,但没有纳入 session 缓存中
3.什么是Hibernate延迟加载?
延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要
数据的时候,才真正执行数据加载操作。在 Hibernate 中提供了对实体对象的延迟加载以及
对集合的延迟加载,另外在 Hibernate3 中还提供了对属性的延迟加载。
4.Hibernate中类之间的关联关系有几种?(如:一对多、多对多的关系)
many-to-one、one-to-many、many-to-many、 one-to-one
5. 说下Hibernate的缓存机制
一、hibernate一级缓存
(1)hibernate支持两个级别的缓存,默认只支持一级缓存;
(2)每个Session内部自带一个一级缓存;
(3)某个Session被关闭时,其对应的一级缓存自动清除;
二、hibernate二级缓存
(1) 二级缓存独立于 session,默认不开启;
6. Hibernate的查询方式
本地 SQL 查询、Criteria、Hql


Spring 部分:
1.spring 的优点?
1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可以使用容易提供的众多服务,如事务管理,消息服务等
3.容器提供单例模式支持
4.容器提供了 AOP 技术,利用它很容易实现如权限拦截,运行期监控等功能
5.容器提供了众多的辅助类,能加快应用的开发
6.spring 对于主流的应用框架提供了集成支持,如 hibernate,JPA,Struts 等
7.spring 属于低侵入式设计,代码的污染极低
8.独立于各种应用服务器
9.spring 的 DI 机制降低了业务对象替换的复杂性
10.Spring 的高度开放性,并不强制应用完全依赖于 Spring,开发者可以自由选择 spring
的部分或全部
2.什么是 DI 机制?
依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,
具体的讲:当某个角色
需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用
者的实例。但在 spring 中
创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由
spring 来完成,然后注入调用者
因此也称为依赖注入。
spring 以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。
设置注入的优点:直观,自然
构造注入的优点:可以在构造器中决定依赖关系的顺序。
3.什么是 AOP?
面向切面编程(AOP)完善 spring 的依赖注入(DI),面向切面编程在 spring 中主要表
现为两个方面
1.面向切面编程提供声明式事务管理
2.spring 支持用户自定义的切面
面向切面编程(aop)是对面向对象编程(oop)的补充,
面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个
切面。
AOP 从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop 是静态的抽象,aop
是动态的抽象,
是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。
aop 框架具有的两个特征:
1.各个步骤之间的良好隔离性
2.源代码无关性
4. 为什么要用spring?
Spring是一个轻量级的IOC和AOP框架。
IOC(控制反转)意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这
称为控制反转


AOP(面向切面),它将那些影响多个类的行为封装到可重用的模块中,面向对象是把问
题从同类事物中抽象出来,面向切面是把问题从不同类问题中抽象出来。
1. J2EE 共有 23 中设计模式,说出其中几种常用的:
工厂模式(Factory)单例模式(Singleton)
适配器模式(Adapter)代理模式(Proxy)
模板方法模式(Template Method)
2. 应用服务器有哪些:
weblogic ,jboss,tomcat

文章评论