Java面试必备知识:基础到高级

需积分: 10 1 下载量 151 浏览量 更新于2024-07-21 收藏 1.25MB PDF 举报
"Java面试宝典2014版,主要涵盖了Java编程语言的基础和进阶面试知识点,包括语法特性、数据类型、控制结构、面向对象、类与接口、内部类等多个方面,旨在帮助读者深入理解Java语言并为面试做好准备。" 1. Java源文件与类的关系:一个`.java`源文件可以包含多个类,但只能有一个公共类(public class),且公共类的名称必须与文件名相同。 2. `goto`关键字:Java中不存在`goto`关键字,它是一种用于流程控制的保留字,但在Java中并未使用。 3. `&`和`&&`的区别:`&`是逻辑与运算符,无论两边条件如何都会进行计算;而`&&`是短路与运算符,如果左边条件为假,右边的表达式将不会执行。 4. 跳出多重嵌套循环:使用`break`语句可以跳出当前的最内层循环,`break label;`可以跳出指定的循环。 5. `switch`语句:不能直接作用于`byte`,因为`switch`只支持`byte`, `short`, `char`, `int`以及枚举类型和`String`(Java 7以后)。不能直接作用于`long`。 6. `short`变量赋值问题:`short s1 = 1; s1 = s1 + 1;`会涉及到类型提升,可能导致编译错误,而`s1 += 1;`会自动处理类型转换。 7. `char`存储中文:`char`类型可以存储单个Unicode字符,包括中文汉字。 8. 2乘以8的计算:最有效率的方式是直接写出结果`2 * 8 = 16`。 9. 一百亿计算器的设计:涉及大整数计算,可以使用`BigInteger`类来实现。 10. `final`关键字:修饰变量时,表示该变量一旦赋值后不可再改变,对于引用类型,意味着引用本身不可变,但引用的对象内容可以变。 11. `==`与`equals`的区别:`==`比较的是对象的引用,而`equals`方法(默认情况下)比较的是对象的内容。 12. 静态变量与实例变量:静态变量属于类,实例变量属于对象。静态变量在内存中只有一份,而实例变量每个对象都有独立的副本。 13. 从静态方法调用非静态方法:不允许,因为静态方法属于类,而非静态方法属于对象。 14. `Integer`与`int`的区别:`Integer`是`int`的包装类,提供了额外的功能,如缓存、比较等。`int`是原始数据类型,使用更高效。 15. `Math.round()`方法:`Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。 16. 代码不妥之处:未给出具体代码,无法分析。 17. 作用域的区别:`public`可被所有类访问,`private`仅限本类访问,`protected`在本包和子类中可访问,无修饰符(默认)则在同一包内的类可访问。 18. `Overload`与`Override`:`Overload`是重载,方法名相同但参数列表不同;`Override`是重写,子类方法覆盖父类同名同参的方法。重载不改变返回类型,而重写可以保持返回类型一致。 19. 构造器不能被`override`,但可以被重载。 20. 接口继承接口、抽象类实现接口、抽象类继承具体类、静态main方法:这些情况都是允许的。 21. `clone()`方法:通常包含`super.clone()`调用,用于复制对象。 22. 面向对象特征:封装、继承、多态。 23. Java多态机制:通过方法重载(Overload)和方法重写(Override)实现,以及接口的使用。 24. `abstract class`与`interface`:抽象类可以有方法实现,接口只有方法声明。类只能继承一个抽象类,但可以实现多个接口。 25. `abstract`、`static`、`native`、`synchronized`组合:抽象方法不能是`static`或`native`,也不能是`synchronized`。 26. 内部类:内部类是定义在类内部的类,分为静态内部类(StaticNestedClass)和非静态内部类(InnerClass)。静态内部类不依赖外部类的实例,可以直接创建;非静态内部类需要外部类的实例才能创建。 27. 内部类与包含类成员:内部类可以直接访问包含类的所有成员,包括私有成员,但外部类不能直接访问内部类的私有成员。 28. A...(内容未完)