Java面试必备知识:基础篇

需积分: 3 1 下载量 109 浏览量 更新于2024-07-21 收藏 2.63MB PDF 举报
"Java面试宝典2014版" 这篇文档是针对Java程序员面试的一份指南,涵盖了2014年时Java编程语言的核心概念和技术。以下是对标题和描述中涉及的一些关键知识点的详细说明: 1. **Java基础部分**: - **多类定义**:在一个.java文件中,可以包含多个类,但只能有一个公开的类(public class),其余的类可以是非公开的(默认、protected或private)。 - **goto关键字**:Java中没有goto关键字,它是一种流程控制语句,但在Java中被摒弃,提倡使用结构化编程来替代。 - **&和&&的区别**:&是逻辑与运算符,无论两侧表达式是否为真都会进行运算;而&&是短路与运算符,如果左侧表达式为假,右侧就不会执行。 2. **循环控制**:在Java中,可以用`break`语句跳出多重嵌套循环,但`break`标签(labeled break)可以指定跳出特定的循环层。 3. **switch语句**:switch语句适用于byte、char、short、int以及枚举类型,但不能直接用于long和String,JDK 7以后可以使用String类型。 4. **short变量的加法**:在Java中,直接使用`+=`操作符会自动提升类型,避免溢出问题,因此`s1+=1`是正确的;而`s1=s1+1`可能会导致数据溢出,因为中间运算过程是int类型。 5. **char存储汉字**:char类型可以存储一个Unicode字符,所以它可以存储中文汉字。 6. **Math.round方法**:Math.round(11.5)将返回12,Math.round(-11.5)将返回-11。round方法总是四舍五入到最近的整数。 7. **访问修饰符**:public表示全局可见,private限制在同一类内访问,protected允许子类和同一包内的类访问,无修饰符则默认为包访问权限。 8. **Overload和Override**:Overload是重载,表示同一个类中有多个同名但参数列表不同的方法;Override是重写,是指子类方法覆盖父类方法,要求方法签名完全一致且不能改变返回类型和访问修饰符。 9. **构造器与override**:构造器不能被override,因为它不是方法,而是与类相关联的特殊代码块。 10. **接口与抽象类**:接口可以继承其他接口,抽象类可以实现接口,但抽象类不能继承具体类(concrete class)。抽象类中可以有静态的main方法,但不能实例化。 11. **clone方法**:在实现clone方法时,通常会包含`super.clone()`调用以创建对象的副本。 12. **面向对象特征**:包括封装、继承、多态。 13. **Java多态机制**:通过方法的重写(Override)和向上转型(Upcasting),实现了多态性,使得不同子类对象可以共享父类引用。 14. **abstract与interface区别**:抽象类可以包含抽象方法和非抽象方法,可以有状态(字段),而接口只包含抽象方法,没有状态,强制实现所有方法。 15. **static与abstract、native、synchronized结合**:抽象方法不能是static,因为static方法不能被覆盖;同样,它们也不能是native,因为native方法的实现是在其他地方;同步方法(synchronized)不能是abstract,因为同步是基于对象的,而抽象方法没有实例。 16. **内部类**:内部类是定义在另一个类内部的类,分为静态嵌套类(StaticNestedClass)和非静态嵌套类(InnerClass)。静态嵌套类不需要外部类的实例就可以创建,而InnerClass需要。 17. **内部类与外部类成员的访问**:内部类可以直接访问外部类的所有成员,包括私有成员,没有任何限制。 这只是Java面试宝典2014版中的一部分内容,完整的文档可能还包括更多关于异常处理、集合框架、多线程、I/O流、网络编程、JVM内存模型以及其他高级特性的面试问题和解答。这份资源对于准备Java开发者面试是非常有价值的。