Java面试题全集(下)JAVAEE.docxVIP

  • 1
  • 0
  • 约4.8万字
  • 约 66页
  • 2023-09-23 发布于四川
  • 举报
Java面试题全集(下)源自 这部分主要是开源Java EE框架方面的内容,包括hibernate MyBatis spring、Spring MVC 等,由于Struts 2已经是明日黄花,在这里就不探讨Struts 2的面试题,假如须要了解相 关内容,可以参考我的另一篇文章《Java面试题集(86-115)》。此外,这篇文章还对企 业应用架构、大型网站架构和应用服务器优化等内容进行了简洁的探讨,这些内容信任对面 试会很有帮助。 126、什么是ORM? 答:对象关系映射(Object-Relational Mapping,简称ORM)是一种为了解决程序的面对 对象模型及数据库的关系模型互不匹配问题的技术;简洁的说,ORM是通过运用描述对象和 数据库之间映射的元数据(在Java中可以用XML或者是注解),将程序中的对象自动长久 化到关系数据库中或者将关系数据库表中的行转换成Java对象,其本质上就是将数据从一 种形式转换到另外一种形式。 127、长久层设计要考虑的问题有哪些?你用过的长久层框架有哪些? 答:所谓〃长久〃就是将数据保存到可掉电式存储设备中以便今后运用,简洁的说,就是将内 存中的数据保存到关系型数据库、文件系统、消息队列等供应长久化支持的设备中。长久层 就是系统中专注于实现数据长久化的相对独立的层面。 长久层设计的目标包括: -数据存储逻辑的分别,供应抽象化的数据访问接口。 -数据访问底层实现的分别,可以在不修改代码的状况下切换底层实现。 -资源管理和调度的分别,在数据访问层实现统一的资源调度(如缓存机制)。 -数据抽象,供应更面对对象的数据操作。 长久层框架有: - Hibernate -MyBatis - TopLink -Guzz -jOOQ - Spring Data -ActiveJDBC 128n Hibernate中SessionFactory是线程平安的吗? Session是线程平安的吗(两个线程 能够共享同一个Session吗)? 答:SessionFactory对应Hibernate的一,个数据存储的概念,它是线程平安的,可以被多 个线程并发访问。SessionFactory 一般只会在启动的时候构建。对于应用程序,最好将 SessionFactory通过单例模式进行封装以便于访问。Session是一个轻量级非线程平安的对 象(线程间不能共享session),它表示及数据库进行交互的一个工作单元。Session是由 SessionFactory创建的,在任务完成之后它会被关闭。Session是长久层服务对外供应的主 Spring 2. x中针对WebApplicationContext新增了 3个作用域,分别是:request(每次 恳 求都会创建一个新的Bean)、session (同一个 Session共享同一个Bean,不同的 Session 运用不同的 Bean)和 globalSession (同一k个全局 Session 共享一个 Bean)。 说明:单例模式和原型模式都是重要的设计模式。一般状况下,无状态或状 态不行变的类适合运用单例模式。在传统开发中,由于DA0持有Connection 这个非线程平安对象因而没有运用单例模式;但在Spring环境下,全部DA0 类对可以采纳单例模式,因为Spring利用A0P和Java API中的 ThreadLocal对非线程平安的对象进行了特殊处理。 ThreadLocal为解决多线程程序的并发问题供应了一种新的思路。ThreadLocal,顾名思义 是线程的一个本地化对象,当工作于多线程中的对象运用ThreadLocal维护变量时, ThreadLocal为每个运用该变量的线程安排一个独立的变量副本,所以每一个线程都可以独 立的变更自己的副本,而不影响其他线程所对应的副本。从线程的角度看,这个变量就像是 线程的本地变量。 ThreadLocal类特别简洁好用,只有四个方法,能用上的也就是下面三个方法: void set(T value):设置当前线程的线程局部变量的值。 T get():获得当前线程所对应的线程局部变量的值。 void remove ():删除当前线程中线程局部变量的值。 ThreadLocal是如何做到为每一个线程维护一份独立的变量副本的呢?在ThreadLocal类中 有一个Map,键为线程对象,值是其线程对应的变量的副本,自己要模拟实现一个 ThreadLocal类其实并不困难,代码如下所示: import java. util. Collections;import java. util. HashMap;import java. util. Map; public class MyThreadLocalT { pr

文档评论(0)

1亿VIP精品文档

相关文档