《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
hibernate是如何延迟加载
当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载
节省了服务器的内存开销,从而提高了服务器的性能
怎样实现类之间的关系
many-to-one one-to-many many-to-many来实现类之间的关联关系的
三种状态之间如何转换
临时状态 直接new出来的对象 没有被持久化 不受session的管理
持久化状态 当调用session的save/update/get/load/list 等方法的时候 对象就是持久化
在数据库有对应的数据
受session的管理
当对象属性进行更改的时候,会反映到数据库中
游离状态
当session关闭了之后,持久化的对象就变成了游离状态了
不处于session的管理
数据库中有应用的记录
比较hibernate的三种检索策略优缺点
立即检索 lazy=false
优点 对程序完全透明,不管对象处于持久话状态
缺点 select 语句太多在载占用太多内存
延迟检索 lazy=true
优点提高检索性能,节省内存空间
缺点 如果想要访问游离状态代理类实例,必须保证在持久化状态已经被初始化
迫切左外连接检索 fetch=“join”
hibernate都支持那些缓存策略
read-only read/wirte read/write transactional
sorted collection 内存中通过java比较器 ordered collection 通过order by
为了避免内存中对它们进行排序而出现java 中的 outofmemoryEoor 最好使用ordered collection
hibernate 缓存机制
一级缓存 只在session范围有效 减少数据库直接访问次数
如果想操作缓存内容 必须通过hibernate提供evit/clear方法
二级缓存 基于应用程序的缓存,所有的session都可以使用
可插配的缓存框架 只需要xml中配置
hibernate 查询方式 hql查询
criteria 查询 sql查询
优化hibernate
数据库设计调整
hql优化
api使用
映射文件优化
查询速度很慢的时候,如何优化
建检索 减少表之间的链接 优化sql,不要做全表查询,
简化查询字段
什么是sessionfactory 线程安全
写在最后
很多人感叹“学习无用”,实际上之所以产生无用论,是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。
最后祝愿各位身体健康,顺利拿到心仪的offer!
由于文章的篇幅有限,所以这次的蚂蚁金服和京东面试题答案整理在了PDF文档里
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
[外链图片转存中…(img-37UTxwIy-1714426923740)]
[外链图片转存中…(img-tuoEzIog-1714426923741)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!