Java面试必备知识点:String、异常、Servlet与CGI对比

需积分: 9 0 下载量 111 浏览量 更新于2024-07-23 收藏 253KB DOC 举报
"Java面试题大全" 这是一份详尽的Java面试题集,涵盖了从基础到高级的各种Java知识,包括但不限于字符串操作、异常处理、Servlet生命周期、JSP与Servlet技术、J2EE相关知识以及Web安全性。以下是部分关键知识点的详细解释: 1. **String与StringBuffer的区别** - `String` 是不可变的,每次修改都会创建新的对象,而`StringBuffer` 是可变的,可以在原有对象上进行修改,因此在频繁修改字符串内容时,`StringBuffer` 更高效。 2. **运行时异常与一般异常** - 运行时异常(Runtime Exception)是程序运行过程中常见的错误,如空指针异常、算术异常等,不需要显式捕获。 - 一般异常(Checked Exception)是编译器要求必须处理的异常,如IOException、SQLException等,需要在方法签名中声明或者在代码中捕获。 3. **Servlet生命周期** - Servlet经历初始化(init)、服务(service)、销毁(destroy)三个阶段。 - `service` 方法根据HTTP请求类型调用相应的`doGet`或`doPost`等方法。 - 相比CGI,Servlet更高效,因为Servlet实例驻留在服务器内存中,可以服务于多个请求,而CGI每次请求都会创建新进程。 4. **数据类型转换** - 基本数据类型与String之间可以通过`parseInt`, `doubleValue`, `toString` 等方法进行转换。 - 四舍五入取小数点前两位可使用`Math.round`配合类型转换实现。 5. **日期和时间操作** - 使用`java.util.Calendar` 或 `java.time`包中的类来获取、设置日期时间,`System.currentTimeMillis()` 获取自1970年以来的毫秒数。 6. **多态的实现** - 继承:子类继承父类,获得父类的属性和方法。 - 重载:在同一个类中,方法名相同但参数列表不同的方法。 - 覆盖:子类可以覆盖父类的非final方法。 7. **编码转换** - 使用`new String(byte[], charset)` 创建字符串,指定源字节数组和目标字符集进行转换。 8. **数据库访问** - `Statement` 用于执行SQL语句,易受SQL注入攻击。 - `PreparedStatement` 提供预编译的SQL语句,更安全,性能也更好。 9. **JSP与Servlet** - JSP主要用于表现层,Servlet用于业务逻辑。 - JSP中可以使用EL(表达式语言)和JSTL(JavaServer Pages Standard Tag Library)来简化编程。 10. **J2EE相关** - J2EE(Java 2 Platform, Enterprise Edition)是Java企业级开发平台,包括EJB、JMS、JTA等技术。 - Application Server 提供运行Java EE应用的环境,如Tomcat、JBoss等,支持事务管理、安全管理等。 11. **Web安全性** - 表单验证确保用户输入的数据有效,防止非法操作。 - SSL(Secure Socket Layer)提供加密传输,确保数据在传输过程中的安全性。 这份面试题集对于准备Java面试的开发者来说非常有价值,它能帮助考生全面复习Java的关键概念和技术。