JAVA面试重点:面向对象、继承与优化策略

5星 · 超过95%的资源 需积分: 9 12 下载量 43 浏览量 更新于2024-07-30 收藏 525KB DOC 举报
"这篇资源是2011年的JAVA面试题汇总,涵盖了JAVA基础知识、面向对象特性、类与对象、封装、JVM机制、程序优化、数据类型转换、字符串处理、数组、排序算法、循环控制、日期时间处理、内存管理、垃圾回收、流与序列化、事件委托以及Swing中的MVC模式等多个方面。" 本文主要讨论的是JAVA编程语言的相关知识,特别是针对面试场景下的常见问题。以下是对这些知识点的详细解释: 1. **面向对象的特征**:包括抽象和继承。抽象关注目标相关的核心特性,忽略不相关细节;继承允许类之间共享属性和方法,提高代码复用,派生类可扩展基类功能。 2. **OOP(面向对象编程)**:是一种编程范式,以对象为中心,强调类与对象的关系,以及封装、继承和多态等概念。 3. **类与对象**:类是对象的模板,定义了一组属性(数据成员)和方法(行为)。对象是类的实例,具有类所定义的属性和行为。 4. **属性与方法**:属性是类中的变量,代表对象的状态;方法是类中的函数,表示对象的行为。 5. **封装**:是面向对象的核心特性之一,通过访问修饰符限制类的成员对外可见性,保护数据安全,防止非法访问。 6. **JVM加载class文件**:JVM通过类加载器动态加载.class文件,解析字节码并创建类的实例。 7. **Java程序优化**:包括代码优化、数据结构优化、内存管理优化等,如减少冗余计算、合理使用数据结构、避免过度的对象创建等。 8. **.java源文件**:一个.java文件可以包含多个类,但只有一个公共类(public class)。 9. **char类型与中文**:char类型可以存储单个Unicode字符,包括中文汉字。 10. **逻辑与条件操作符**:逻辑操作符(&, |, ^)用于逻辑运算,条件操作符(&&, ||)用于短路逻辑判断。 11. **Math.round**:Math.round(x)返回最接近x的整数,正数向右取整,负数向左取整。 12. **Java无goto**:Java语言设计中没有goto语句,以增强代码的可读性和可控性。 13. **int与Integer**:int是基本数据类型,直接存储值;Integer是int的包装类,支持对象操作。 14. **数值型字符转数字**:使用Integer.parseInt()或Character.getNumericValue();四舍五入使用BigDecimal的round()方法。 15. **short与+=**:直接赋值可能导致编译错误,因为结果可能超出short范围。 16. **float与3.4**:float不能精确存储3.4这样的浮点数,会有精度损失。 17. **String与StringBuffer**:String是不可变的,每次修改都会创建新对象;StringBuffer线程安全,适合多次修改。 18. **String是否基本类型**:不是,它是对象,不能被继承,因为它是final的。 19. **String对象创建**:"xyz"创建一个String对象,new String("xyz")创建两个。 20. **length()方法**:数组有length属性,String有length()方法。 21. **排序方法**:冒泡、选择、插入、快速、归并等多种排序算法。 22. **switch**:在Java 5及之后版本,switch可以作用于byte, char, short, int,枚举类型,Java 7以后也可以作用于字符串。 23. **跳出多重循环**:使用break标签可以跳出特定循环。 24. **日期时间处理**:Java中使用Date、Calendar和后来的java.time包进行日期和时间操作。 25. **对象传递**:Java中所有参数传递都是按值传递,对于对象,传递的是对象引用的副本。 26. **assert**:用于断言,调试时检查某些条件是否满足。 27. **GC(Garbage Collector)**:自动回收不再使用的内存空间,防止内存泄漏。 28. **垃圾回收优点**:自动管理内存,开发者无需手动释放;原理基于可达性分析和引用计数。 29. **主动GC**:通常由系统自动执行,但可以通过System.gc()请求,不过并不保证立即执行。 30. **Java内存泄漏**:虽然有GC,但长期持有无用对象的引用仍可能导致内存泄漏。 31. **流的类型**:输入流(Input Stream)、输出流(Output Stream)、字符流(Character Stream)和字节流(Byte Stream),抽象类包括InputStream、OutputStream、Reader、Writer。 32. **文件与目录操作**:涉及File类,包括创建、删除、移动、读写文件等。 33. **Java序列化**:将对象转换为字节流,便于存储或网络传输;实现Serializable接口即可序列化。 34. **事件委托机制**:Swing中,事件监听者通过事件源对象来处理事件。 35. **Swing的MVC**:Model(模型)负责数据处理,View(视图)显示数据,Controller(控制器)协调模型和视图交互。 36. **MVC在JTable中**:Model管理表格数据,View呈现表格,Controller响应用户操作,更新数据或视图。 以上内容只是面试题的一部分,完整列表还包括更多关于异常处理、多线程、集合框架、网络编程等Java核心概念的问题,这些都是Java开发者需要掌握的基础知识。