Java面试精华:面向对象与特性详解,重载与重写差异

需积分: 7 0 下载量 120 浏览量 更新于2024-07-19 收藏 194KB DOC 举报
Java作为一种广泛应用的编程语言,在面试中常被问及核心概念和设计原则。面试官可能会围绕以下几个主题提问: 1. **面向对象与面向过程**: - 面向过程注重效率,适用于资源有限的场景,如单片机、嵌入式开发,它在性能上有优势,但缺乏面向对象的封装、继承和多态性,导致维护和复用性较差。 - 面向对象则强调可维护性和可扩展性,通过封装、继承和多态来降低系统耦合度,提高灵活性,但相对于面向过程,性能略逊。 2. **Java的四大特性**: - 抽象:将现实世界的事物抽象为类或接口,包括数据抽象(对象属性)和过程抽象(行为特征)。 - 封装:隐藏实现细节,确保数据的安全性和行为的可控性,包括属性和方法的封装。 - 继承:通过共享父类的特性,实现代码复用,父类是子类的概括。 - 多态:不同类型的对象对同一消息作出响应的能力,体现在方法重载和覆盖上。 3. **重载与重写**: - 重载:在同一类内部,方法名相同但参数不同,编译时确定具体调用哪个方法。 - 重写:子类继承父类后,对具有相同名称、参数和访问权限的方法进行替换,实现更具体的实现。 4. **构造器**: - 构造器用于初始化对象,不可被重写,只能有public、private或protected修饰,且不能有返回值。 5. **访问控制符**: - `private`:仅在类内部访问; - `public`:所有地方都能访问; - `protected`:同一包内及子类可访问; - 默认(不写):同一包内访问。 6. **关于继承和String类**: - Java不支持继承final类,如String,因为它们是不可更改的,这防止了意外的修改。 7. **String与StringBuffer、StringBuilder的区别**: - String是不可变的,每次操作都会创建新对象,内存消耗较大; - StringBuffer和StringBuilder都是可变的字符串类,StringBuilder在性能上稍优,但在并发环境下推荐使用StringBuffer,因为它是线程安全的。 掌握这些知识点,面试时不仅能展示你的技术实力,还能体现出你在设计模式和优化方面的考虑。