面试必备:Hibernate查询技巧、网络协议与Servlet生命周期

需积分: 10 1 下载量 157 浏览量 更新于2024-07-19 收藏 889KB DOC 举报
"面试技术文档,适用于有一定经验的求职者,特别是初入职场或有一年经验的程序员,帮助他们准备面试,提高面试成功率。" 在面试中,掌握各种技术细节至关重要,以下是一些核心知识点: 1. **Hibernate离线查询去除重复项**:在Hibernate中,如果需要去除查询结果中的重复项,可以使用`Criteria`接口的`setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)`方法。这将确保返回的实体集合中没有重复的根实体。 2. **HTTP和SMTP协议及其端口**: - `HTTP`(超文本传输协议)通常运行在`端口80`,用于传输网页内容。 - `SMTP`(简单邮件传输协议)运行在`端口25`,用于发送电子邮件。 3. **文件复制的编程实现**:文件复制通常涉及读取源文件的内容,然后写入目标文件。在Java中,可以使用`FileInputStream`和`FileOutputStream`类配合`BufferedInputStream`和`BufferedOutputStream`进行高效读写操作,以实现文件的复制。 4. **Servlet的创建过程和生命周期**: - Servlet实例的创建由Web容器管理,主要有两种情况: - 客户端首次请求Servlet时,容器创建Servlet实例。 - 通过`web.xml`配置`load-on-startup`元素,容器会在应用启动时预先创建Servlet实例。 - Servlet生命周期包括: - 创建:Web容器实例化Servlet。 - 初始化:调用`init()`方法。 - 服务:通过`service()`方法处理请求,并调用对应的`doGet()`或`doPost()`等方法。 - 销毁:当Web容器关闭或需要释放资源时,调用`destroy()`方法。 5. **SQL语句分页**: - 在MySQL中,可以利用`NOT IN`子查询配合`LIMIT`来实现分页,例如: ``` SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table1 ORDER BY id LIMIT (页数-1) * 页大小, 页大小) ORDER BY id ``` - 在Oracle中,分页通常使用`ROWNUM`属性,有多种方法,如: - 截取ID法: ```sql SELECT * FROM emp a, (SELECT empno, ROWNUM as num FROM emp) b WHERE a.empno = b.empno AND b.num BETWEEN 5 AND 7 ``` - 三层嵌套法: ```sql SELECT * FROM (SELECT A.*, ROWNUM r FROM (SELECT * FROM emp) A WHERE ROWNUM <= 7) B WHERE r > 5 ``` 6. **List、Map、Set的存储特点**: - `List`:有序的集合,允许元素重复,可以通过索引访问。 - `Set`:无序且不重复的集合,不保证元素顺序。 - `Map`:存储键值对的数据结构,键必须唯一,值可以重复。键不能为null,但值可以。Map中的元素可以通过键来访问。 这些知识点涵盖了网络协议、文件操作、Web开发以及数据库操作等基础但重要的技术概念,对于面试准备至关重要。理解和掌握这些内容将有助于你在面试中展现出扎实的技术功底。