2020年度JAVA面试问题和答案1、什么是ORM? 答:对象关系映射(Object-RelationalMapping,简称ORM)是一种为了解决程序的面向对象模型与数据库的关系模型互不匹配问题的技术;简单的说,ORM是通过使用描述对象和数据库之间映射的元数据(在Java中能够用XML或者是注解),将程序中的对象自动持久化到关系数据库中或者将关系数据库表中的行转换成Java对象,其本质上就是将数据从一种形式转换到另外一种形式。2、持久层设计要考虑的问题有哪些?你用过的持久层框架有哪些? 答:所谓"持久"就是将数据保存到可掉电式存储设备中以便今后使用,简单的说,就是将内存中的数据保存到关系型数据库、文件系统、消息队列等提供持久化支持的设备中。持久层就是系统中专注于实现数据持久化的相对独立的层面。持久层设计的目标包括: -数据存储逻辑的分离,提供抽象化的数据访问接口。 -数据访问底层实现的分离,能够在不修改代码的情况下切换底层实现。 -资源管理和调度的分离,在数据访问层实现统一的资源调度(如缓存机制)。 -数据抽象,提供更面向对象的数据操作。持久层框架有: - Hibernate - MyBatis - TopLink - Guzz - jOOQ - SpringData - ActiveJDBC3、Hibernate中SessionFactory是线程安全的吗?Session是线程安全的吗(两个线程能够共享同一个Session吗)? 答:SessionFactory对应Hibernate的一个数据存储的概念,它是线程安全的,能够被多个线程并发访问。SessionFactory一般只会在启动的时候构建。对于应用程序,最好将SessionFactory通过单例模式进行封装以便于访问。Session是一个轻量级非线程安全的对象(线程间不能共享session),它表示与数据库进行交互的一个工作单元。Session是由SessionFactory创建的,在任务完成之后它会被关闭。Session是持久层服务对外提供的主要接口。Session会延迟获取数据库连接(也就是在需要的时候才会获取)。为了避免创建太多的session,能够使用ThreadLocal将session和当前线程绑定在一起,这样能够让同一个线程获得的总是同一个session。Hibernate3中SessionFactory的getCurrentSession()方法就能够做到。4、Hibernate中Session的load和get方法的区别是什么? 答:主要有以下三项区别:
2020年度JAVA面试问题和答案模板 来自淘豆网m.daumloan.com转载请标明出处.