Java面试常见问题:Hibernate查询、HTTP/SMTP协议、Servlet生命周期与分页SQL

需积分: 3 1 下载量 149 浏览量 更新于2024-07-21 收藏 850KB DOC 举报
"这份文档包含了Java相关的面试题,包括Hibernate查询优化、网络协议、文件操作、Servlet生命周期以及SQL分页技巧。此外,还简要介绍了Java集合类List、Map和Set的特点。" 在Java面试中,经常会遇到各种技术问题,这份文档提供了一些常见题目。首先,针对Hibernate的离线查询去除重复项,可以通过设置`dc.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);`来实现。这行代码的作用是在查询结果中移除重复的根实体,确保返回的实体列表是唯一的。 网络协议部分,提到了HTTP和SMTP协议及其默认端口。HTTP(超文本传输协议)通常运行在80端口,用于传输网页内容;而SMTP(简单邮件传输协议)则运行在25端口,用于发送电子邮件。 文件复制功能的编写是基础的IO操作,这通常涉及`java.io`包中的流类,例如使用FileInputStream和FileOutputStream创建输入和输出流,通过循环读写实现文件的复制。 Servlet的创建过程和生命周期是Java Web开发的重要概念。Servlet在容器(如Tomcat)中管理,其生命周期包括:由容器实例化,调用`init()`方法初始化,然后通过`service()`方法响应请求,调用相应的`doGet()`或`doPost()`等方法处理请求。当Web应用关闭或通过`load-on-startup`配置预加载Servlet时,会调用`destroy()`方法进行清理工作。 SQL分页查询是数据库操作中常见的需求。在MySQL中,可以利用子查询和`LIMIT`关键字实现分页。Oracle数据库则通常采用截取ID方法或者三层嵌套查询。截取ID的方法利用`ROWNUM`伪列,三层嵌套则是先获取所有数据,再进行两次筛选来实现分页。 Java集合框架中的List、Map和Set各有特性。List以特定的顺序存储元素,允许元素重复,比如ArrayList和LinkedList。Set不允许重复元素,内部通常有排序,如HashSet和TreeSet。Map用于存储键值对,Key通常是唯一的,例如HashMap和TreeMap。 这些面试题覆盖了Java开发的多个方面,包括ORM框架、网络通信、文件操作、Web服务以及数据存储,是准备Java面试的重要参考资料。了解并掌握这些知识点,能帮助面试者展现出扎实的Java基础和实践经验。