Java面试精华:面向对象、基础类型、数据封装等核心知识点

需积分: 0 1 下载量 76 浏览量 更新于2024-08-01 收藏 164KB DOC 举报
在Java面试中,面试官可能会提问一系列关于Java语言基础和核心概念的问题,以评估候选人的编程素养和理解深度。以下是一些关键知识点的详细解释: 1. 面向对象的特征: - 抽象:Java通过类和接口支持抽象,允许创建具有通用行为的模板。 - 封装:隐藏对象的实现细节,仅公开必要的方法,保护数据的安全性。 - 继承:子类继承父类的属性和行为,实现代码重用和扩展。 - 多态:通过继承或接口实现不同类型的对象在相同接口下的统一行为。 2. Java基本数据类型: - Byte, short, int, long, float, double: 基本数值类型,用于存储整数和浮点数。 - char: 存储单个字符。 - boolean: 用于逻辑判断,仅取真(true)和假(false)两种值。 3. int与Integer: - int 是基本数据类型,表示32位整数,没有自动装箱和拆箱机制。 - Integer 是int的封装类,属于引用数据类型,提供自动装箱和拆箱功能,便于集合处理。 4. String和StringBuffer: - String 是不可变的,一旦创建就无法修改,适合于常量和配置信息。 - StringBuffer 可变,提供了append和replace等方法进行动态字符串操作,适合频繁修改的情况。 5. 运行时异常与一般异常: - 运行时异常是Java中的常见错误,编译器不强制处理,但开发者应捕获或声明抛出。 - 一般异常是编译时异常,如IOException,需要在方法签名中声明处理。 6. Servlet生命周期: - 初始化(ServletContextListener接口)、加载(ServletConfig接口)、服务(Servlet接口)、销毁。 7. ArrayList, Vector, LinkedList性能和特性: - ArrayList:动态数组,随机访问快,插入和删除在末尾高效。 - Vector:线程安全,性能略低于ArrayList,因为同步开销。 - LinkedList:链表结构,插入和删除元素在中间高效,查找慢。 8. EJB技术与Bean的区别: - EJB基于J2EE,包含SessionBean(无状态)处理请求,EntityBean(状态ful)持久化数据。 - StatefulBean有状态,SessionBean无状态。 9. Collection和Collections: - Collection是集合框架的基础接口,如List, Set, Queue等。 - Collections是Java提供的工具类,提供各种操作集合的静态方法。 10. &和&&: - "&" 是位运算符,逻辑与。 - "&&" 是逻辑与运算符,只有两侧都为真才返回真。 11. HashMap和Hashtable: - HashMap:非同步的,键值对存储,允许null键值对。 - Hashtable:同步的,键值对存储,不允许null键值对。 12. final, finally, finalize: - final:修饰变量/方法/类,分别表示不可修改、方法结束后的清理动作、对象的最终回收。 13. sleep()和wait(): - sleep()使当前线程进入睡眠状态,可被其他线程唤醒。 - wait()让当前线程等待,直到其他线程唤醒,适用于多线程同步。 14. Overload和Override: - Overload:方法名相同但参数列表不同的重载,不改变返回值类型。 - Override:子类重写父类方法,方法名和参数列表必须一致,返回值类型可保持不变。 15. error和exception: - error:系统级严重错误,通常由JVM处理,不能被捕获。 - exception:程序运行时异常,可以被捕获和处理。 16. abstractclass和interface: - abstractclass:可以有默认方法实现,可有构造函数,子类必须实现所有抽象方法。 - interface:纯抽象,只定义方法,不可有实现,通过实现多个接口来实现多继承。 17. forward和redirect: - forward:服务器内部请求转发,保留原请求的URL。 - redirect:客户端重定向,发送新的HTTP头,浏览器跳转。 18. Java内部类分类及特性: - 不同类型的内部类(如静态内部类、成员内部类、局部内部类)和它们的适用场景。 19. JSP: - JavaServer Pages,动态网页技术,将Java代码嵌入HTML,用于Web应用程序开发。 掌握这些知识点对于准备Java面试至关重要,能够展示候选人对语言基础、设计模式以及并发编程的理解程度。