ssh 框架面试经典问题(共2篇) ssh 框架面试经典问题先简单的提一下, 要开发出好的, 高质量的 j2ee 系统, 评价系统的高低水平, 解耦性至关重要!而在开发中主要分成三个层次,表现层, 服务层, 持久层。从这三层次去解藕。 spring 的作用就是把服务从表现层中,抽取出來, hibernate 把持久层抽取出來。剩下的表现层交给 struts 控制但是面对那么多的框架, 为什么在持久层中我们选择 hibernate , 在服务层我们用 spring ,下面都有说。 Hibernate 工作原理及为什么要用? 原理: 1. 读取并解析配置文件 2. 读取并解析映射信息,创建 SessionFactory 3. 打开 Sesssion 4. 创建事务 Transation 5. 持久化操作 6. 提交事务 7. 关闭 Session 8. 关闭 SesstionFactory 为什么要用: JDBC 访问数据库的代码做了封装, 大大简化了数据访问层繁琐的重复性代码。 2. Hibernate 是一个基于 JDBC 的主流持久化框架, 是一个优秀的 ORM 实现。他很大程度的简化 DAO 层的编码工作 3. hibernate 使用 Java 反射机制,而不是字节码增强程序来实现透明性。 4. hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate 是如何延迟加载? 1. Hibernate2 延迟加载实现: a) 实体对象 b) 集合( Collection ) 2. Hibernate3 提供了属性的延迟加载功能当 Hibernate 在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3. Hibernate 中怎样实现类之间的关系?( 如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作, 它们都市对对象进行操作, 我们程序中把所有的表与类都映射在一起, 它们通过配置文件中的 many-to-one 、 one-to-many 、 many-to-many 、 4. 说下 Hibernate 的缓存机制 1. 内部缓存存在 Hibernate 中又叫一级缓存, 属于应用事物级缓存 2. 二级缓存: a) 应用及缓存 b) 分布式缓存条件: 数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非关键数据 c) 第三方缓存的实现 5. Hibernate 的查询方式 Sql 、 Criteria,ptosition Hql : 1、属性查询 2、参数查询、命名参数查询 3、关联查询 4、分页查询 5、统计函数 6. 如何优化 Hibernate ? 1. 使用双向一对多关联,不使用单向一对多 2. 灵活使用单向一对多关联 3. 不用一对一,用多对一取代 4. 配置对象缓存,不使用集合缓存 5. 一对多集合使用 Bag, 多对多集合使用 Set 6. 继承类使用显式多态 7. 表字段要少,表关联不要怕多,有二级缓存撑腰 7. Struts 工作机制?为什么要使用 Struts ? 工作机制: Struts 的工作流程:在 web 应用启动时就会加载初始化 ActionServlet,ActionServle t 从读取配置信息, 把它们存放到各种配置对象当 ActionServlet 接收到一个客户请求时, 将执行如下流程. -(1) 检索和用户请求匹配的 ActionMappin g 实例, 如果不存在, 就返回请求路径无效信息; -(2) 如果 ActionForm 实例不存在, 就创建一个 ActionForm 对象,把客户提交的表单数据保存到 ActionForm 对象中; -(3) 根据配置信息决定是否需要表单验证. 如果需要验证, 就调用 ActionForm 的 validate() 方法; -(4) 如果 ActionFor m的 validate() 方法返回 nul l 或返回一个不包含 ActionMessage 的 ActuibErrors 对象, 就表示表单验证成功; -(5)ActionServle t根据 ActionMappin g 所包含的映射信息决定将请求转发给哪个 Action, 如果相应的 Action 实例不存在, 就先创建这个实例, 然后调用 Action 的 execute() 方法; -(6)Action 的 execute() 方法返回一个 ActionForward 对象,ActionServle
ssh框架面试经典问题 (共2篇) 来自淘豆网m.daumloan.com转载请标明出处.