Java面试题大全-葵花宝典是一份全面整理的Java技术面试资料,涵盖了广泛且深入的面试常见问题。以下部分知识点解析:
1. Hibernate检索方式:
Hibernate提供了多种数据检索策略,包括:
- **导航对象图检索**:通过对象关系图进行查询,适合于复杂的数据依赖关系。
- **OID检索**:基于对象标识符的查询,常用于已知ID查找对象。
- **HQL(Hibernate Query Language)检索**:类似SQL的查询语言,用于灵活地定制查询。
- **QBC(Query By Criteria)检索**:基于条件的查询,支持更精确的查询参数化。
- **本地SQL检索**:直接使用原生SQL,灵活性高但可能影响代码可维护性。
2. `Forward`与`Global-Forward`的区别:
- `Forward` 是页面跳转,根据Action返回值定位JSP,避免重复定义。
- `Global-Forward` 是全局的,解决多个Action共用相同跳转路径的情况,提高代码复用。
3. 持久化对象的状态:
- **临时状态**:新创建的对象,尚未保存到数据库,不在session缓存中。
- **持久化状态**:已经保存并缓存在session中,可以通过session访问。
- **游离态**:对象已持久化,但不再session缓存中,可能需要重新加载。
4. ORM中的检索策略:
- **立即检索**:透明性强,可能导致多条SQL,适用于类级别的查询。
- **延迟检索**:按需加载,节省内存,但需确保应用程序在访问前已初始化对象,适用于一对多或多对多关联。
- **迫切左外连接检索**:透明性好,能处理一对一或多对一关联,但可能增加查询复杂性。
5. ORM解决领域模型与关系模型的不匹配:
- ORM需要处理面向对象(OOP)与关系数据库之间的差异,如继承、多对多关系和双向关联。
- 域模型(如继承关系、细粒度设计)与关系模型(如表连接、粗粒度设计)之间的映射需要巧妙处理。
6. 映射继承关系的方式:
- **一对一继承映射**:每个具体类对应一个表,包含父类和自身属性。
- **单表继承**:根类对应一个表,其他类继承其属性,并可能额外添加自己的属性。
这些知识点在面试中尤为重要,能够展现求职者对Java和ORM框架(如Hibernate)的理解深度,以及在实际开发中的应用能力。熟练掌握这些问题可以帮助应聘者更好地应对技术面试,展示出扎实的技术功底和实践经验。