java面试笔试题以整理

preview
需积分: 0 8 下载量 18 浏览量 更新于2008-10-29 收藏 94KB DOC 举报
【Java面试笔试题详解】 1. **面向对象的四大特征** - **抽象**:抽象是将复杂的现实问题简化,关注关键属性和行为,忽略不重要的细节。在Java中,抽象可以通过抽象类(abstract class)和接口(interface)来实现。 - **继承**:继承使得子类可以继承父类的属性和方法,增强了代码的复用性。Java中的继承是单继承,即一个类只能有一个直接父类。 - **封装**:封装是将数据和操作数据的方法绑定在一起,对外只提供公共接口,隐藏内部实现细节。Java中通过访问修饰符(public, protected, private, default)来实现封装。 - **多态性**:多态性允许不同的对象对同一消息做出不同的响应。Java中的多态性主要体现在方法重写(override)和方法重载(overload)。 2. **String的基本数据类型** - String在Java中不是基本数据类型,而是对象。Java有8种基本数据类型,如int、char等,而Integer是int的封装类,提供了一些额外的功能,如自动装箱/拆箱。 3. **int与Integer的区别** - int是原始类型,直接存储值,不需要对象引用;Integer是对象,存储在堆中,需要额外的内存开销。 - int比Integer更快,因为没有对象创建和垃圾回收的过程。 - Integer可以为null,而int不能为null。 4. **String与StringBuffer的区别** - String是不可变的,每次修改都会创建新的对象,不适合频繁修改的场景。 - StringBuffer是可变的,内部维护了一个字符数组,修改时不需要创建新对象,适合大量字符串操作。 5. **运行时异常与一般异常** - 运行时异常是程序逻辑错误,比如空指针异常(NullPointerException)、数组越界异常(ArrayIndexOutOfBoundsException)等,如果不捕获,程序会立即终止。 - 一般异常是编译时异常,如IOException,编译器要求必须显式处理(捕获或声明抛出)。 6. **Servlet的生命周期** - 初始化:服务器启动或Servlet首次被请求时,调用`init()`方法。 - 服务:每次请求到达,都会调用`service()`方法,然后根据请求类型调用相应的`doGet()`或`doPost()`等方法。 - 销毁:服务器关闭或Servlet不再需要时,调用`destroy()`方法,释放资源。 7. **ArrayList、Vector、LinkedList的特性** - ArrayList和Vector都使用数组实现,查询速度快,但插入和删除慢,因为涉及到数组移动。 - Vector是线程安全的,性能稍逊于ArrayList。 - LinkedList使用链表实现,插入和删除速度快,但查询速度慢,因为需要遍历链表。 8. **EJB(Enterprise JavaBeans)** - EJB是Java EE中的组件模型,用于构建可部署的、分布式的企业级应用。 - **SessionBean**代表客户端的会话,分为Stateful(有状态)和Stateless(无状态)。 - Stateful Session Bean保持了与客户端的会话状态,能记住客户端的交互历史。 - Stateless Session Bean不保存状态,每次调用都是独立的,适合不依赖上下文信息的服务。 - **EntityBean**主要用于持久化数据,对应数据库中的记录,分为Bean-managed Persistence(BMP)和Container-managed Persistence(CMP)。 以上就是Java面试笔试题中涉及的一些核心知识点,涵盖了面向对象、异常处理、字符串操作、集合框架、企业级开发等多个方面。理解并掌握这些内容对于Java程序员来说至关重要。