"Java面试题总结"
这篇摘要涵盖了Java编程语言的基础知识,特别是面向对象的四大特征:抽象、继承、封装和多态性。抽象关注的是忽略不相关细节,聚焦核心功能;继承允许类的层次结构,促进代码重用;封装确保数据安全,通过接口访问;多态性则允许不同对象响应相同的消息。
接着,摘要讨论了Java中的基本数据类型,如int,以及与其相关的引用类型Integer。虽然int是基本类型,但Integer是它的封装类,适用于需要对象特性的场景,如存储在集合中。在效率和空间考虑下,频繁修改字符串时推荐使用StringBuffer而非String。
此外,摘要还对比了int和Integer、String与StringBuffer的区别。Integer是int的包装类,提供了额外的特性,如对象比较。StringBuffer线程安全,适合多线程环境下的字符串操作,而String是不可变的,创建新String会生成新的对象,可能导致性能下降。
面试题中还提到了异常处理,运行时异常与一般异常的主要区别在于编译器对待它们的方式,运行时异常不需要显式声明,而一般异常则需要。Servlet的生命周期包括初始化、服务和销毁阶段,与CGI相比,Servlet更高效,因为它可以处理多个请求而无需每次都创建新的进程。
ArrayList、Vector和LinkedList是Java中三种不同的列表实现。ArrayList和Vector基于数组,支持随机访问但插入和删除效率较低,Vector是线程安全的,而ArrayList不是。LinkedList使用链表结构,插入和删除速度快,但访问元素需要线性搜索。
EJB(Enterprise JavaBeans)是企业级应用的组件,包括Session Bean、Entity Bean和Message Driven Bean,其中Session Bean用于业务逻辑,Entity Bean处理持久性数据,Stateful Session Bean和Stateless Session Bean分别对应有状态和无状态的会话管理。
Collection和Collections的区别在于,Collection是所有集合接口的父接口,Collections则是提供集合操作的工具类。&和&&在Java中分别代表位运算符和逻辑运算符。HashMap和Hashtable都是映射结构,但HashMap是非线程安全的,允许null值,而Hashtable是线程安全的,不允许null。
final、finally和finalize各有用途,final用于声明不可变的变量、方法和类,finally确保代码块在任何情况下都会被执行,而finalize是对象被垃圾收集前调用的方法,用于资源清理。
最后,overload(重载)和override(重写)是多态性的体现,重载发生在同一个类中,方法名相同但参数列表不同,而重写发生在父类和子类之间,方法名、参数列表和返回类型都需相同,但子类方法可以有自己的实现。重载方法可以改变返回类型,但重写不行。