JAVA面试必备知识点:面向对象、String与Integer、异常处理及Servlet生命周期

需积分: 3 0 下载量 33 浏览量 更新于2024-07-28 收藏 114KB DOC 举报
"JAVA面试资料集,包含了Java基础、面向对象特性、String类型理解、int与Integer的区别、String与StringBuffer的使用场景以及运行时异常和一般异常的异同,还有Servlet的生命周期和Servlet与CGI的区别。这些内容是Java程序员面试时常见的考察点。" 在Java编程中,面试经常涉及以下几个核心知识点: 1. **面向对象的特征**:面向对象编程(OOP)的四大特征是抽象、继承、封装和多态。抽象是将一类对象的共同特性抽取出来,形成接口或类;继承允许一个类(子类)继承另一个类(父类)的属性和方法;封装是隐藏对象的属性和实现细节,仅对外提供公共访问方式;多态则是指同一个消息可以根据发送对象的不同而采取多种不同的行为方式。 2. **String类型**:在Java中,String不是基本数据类型,而是对象,属于引用类型。它的值是不可变的,这意味着一旦创建,就不能更改。如果需要频繁修改字符串,应使用StringBuffer或StringBuilder类,它们在内存管理上更高效。 3. **int与Integer的区别**:int是Java的原始数据类型,直接存储值,而Integer是int的封装类,用于处理对象。原始类型占用的内存少,操作速度快,而封装类提供了更多的方法和功能,但使用时会有一些额外的内存开销。在默认情况下,变量声明为int时,其值为0;声明为Integer时,值为null。 4. **String与StringBuffer的区别**:String类的字符串是不可变的,每次修改都会创建新的对象,而StringBuffer(线程安全)或StringBuilder(非线程安全)允许在已有字符串基础上进行修改,提高了性能,特别是在大量字符串拼接时。 5. **运行时异常与一般异常**:运行时异常是程序运行期间可能出现的错误,如空指针异常、数组越界等,它们是RuntimeException及其子类。一般异常(检查型异常)则是在编译阶段就需要处理的异常,例如IOException。Java编译器要求必须捕获或声明抛出检查型异常,但对运行时异常没有强制要求。 6. **Servlet的生命周期**:Servlet的生命周期主要包括初始化(init)、服务(service)、销毁(destroy)三个阶段。当Servlet首次被请求时,容器加载并实例化Servlet,调用init方法进行初始化;每次有请求到来,容器会调用service方法,根据请求类型转发到相应的doGet或doPost方法;当服务器关闭或Servlet不再需要时,调用destroy方法进行清理工作。 7. **Servlet与CGI的区别**:Servlet是Java中处理HTTP请求的服务器端技术,它具有更好的性能和可扩展性,可以在服务器内部持久化,支持多线程。而CGI(Common Gateway Interface)是早期Web服务器与动态脚本交互的方式,每个请求都会启动一个新的进程,效率较低,不适用于高并发场景。Servlet可以通过Tomcat、Jetty等容器高效地处理请求,而CGI通常需要与Perl、Python或C++等语言结合使用。 这些知识是Java开发者在面试中常常会被问到的,熟练掌握它们对于面试和实际工作都有很大帮助。