Java面试题精选:去重、协议端口、文件复制与Servlet生命周期详解

需积分: 0 1 下载量 174 浏览量 更新于2024-07-31 收藏 516KB DOC 举报
Java面试题是求职者在准备进入IT行业特别是Java开发岗位时经常遇到的一种考核方式,这些题目旨在测试应聘者的编程技能、理论知识以及问题解决能力。以下是部分重要的Java面试题及其相关知识点: 1. **离线查询去除重复项的条件**: 在使用Java的Hibernate或JPA进行数据查询时,`Criteria`对象的`RESULT_TRANSFORMER`属性可以用来指定结果集处理方式。如果想要在查询结果中去除重复项,可以设置`DISTINCT_ROOT_ENTITY`,这将返回每个唯一实体实例,即使它们的数据相同。理解并能够灵活运用ORM工具的高级特性是面试官考察的一个方面。 2. **HTTP和SMTP协议及端口**: - **超文本传输协议 (HTTP)**:HTTP是Web通信的基础,标准端口为**80**,但也可以通过SSL/TLS协议的443端口进行安全访问。 - **简单邮件传输协议 (SMTP)**:SMTP用于发送电子邮件,其默认端口为**25**,但在某些情况下,可能需要使用安全的465或587端口。 3. **文件复制功能的编写**: 题目要求实现简单的文件复制功能,这涉及到了Java的IO操作。`InputStream`和`OutputStream`是核心类,用于读取和写入二进制数据。`read`方法逐块读取输入流中的数据,`write`方法将数据写入输出流。在操作完毕后,务必记得关闭流以释放系统资源。 4. **Servlet的创建与生命周期**: Servlet是Java Web开发的基础组件,其创建和销毁由Web服务器容器控制。创建分为两种情况:根据客户端请求动态创建,或在web.xml中通过`load-on-startup`初始化。生命周期包括:初始化(init)、处理请求(doGet、doPost或service)、响应请求和销毁(destroy)。了解这些概念展示了应聘者对Web应用程序设计模式的理解。 5. **SQL分页和集合结构**: SQL分页通常涉及LIMIT和OFFSET关键字,用于获取数据库结果集的一部分。Map和Set在Java集合框架中的区别:List有序且允许重复元素,Set无序且不允许重复,Map则是键值对存储,value可以有多个。 6. **关键字final的使用**: `final`关键字在Java中有多种用途:它可以用于修饰类、方法、变量,分别表示不可继承、不可重写、常量或固定值。理解不同场合下final的含义体现了应聘者的编码规范和对语言特性的掌握。 掌握以上知识点不仅有助于面试成功,而且在日常开发工作中也非常重要,显示了应聘者是否具备扎实的Java基础和实践经验。