Java面试必备知识精粹

需积分: 33 2 下载量 16 浏览量 更新于2024-07-20 收藏 2.14MB PDF 举报
"Java面试宝典2014版提供了丰富的Java编程知识,涵盖了Java的基础、语法特性、面向对象、类与对象、接口与抽象类、内部类等多个方面,是准备Java面试的重要参考资料。这份文档详细解答了多个常见的面试问题,帮助求职者深入理解Java语言的关键概念和技术。” 在Java面试中,以下几个知识点尤其重要: 1. Java源文件可以包含多个类,但只能有一个公共类(public class),其余类可以是非公共的。这允许在一个文件中组织相关的类。 2. Java中没有`goto`关键字,它被设计为避免复杂的跳转结构,提高代码的可读性。 3. `&`是位运算符,而`&&`是逻辑运算符。`&&`具有短路特性,即如果第一个操作数为假,不会计算第二个操作数;而`&`总是会计算两边的操作数。 4. 要跳出多重嵌套循环,可以使用`break`语句配合标签(label)来指定要退出的特定循环。 5. `switch`语句不能直接用于`byte`和`long`,但可以用于`char`和`enum`类型,自Java 7起,也可以用于字符串(`String`)。 6. `short s1=1; s1=s1+1;`会因类型提升导致编译错误,应转换后再赋值。`s1+=1;`则会自动处理类型提升。 7. `char`类型可以存储一个中文汉字,因为UTF-16编码每个字符可能占用两个字节。 8. 最有效率地计算2乘以8可以使用`2 << 3`,这是位左移运算,相当于乘以2的3次方。 9. 设计一个能处理百亿级别的计算器要考虑效率和内存管理,如使用大整数类(BigInteger)、避免中间结果的溢出,以及合理的数据结构。 10. `final`修饰的变量,其引用不能改变,但引用的对象的状态可以改变。 11. `==`比较的是对象的引用,而`equals()`方法比较的是对象的内容(除非重写)。 12. 静态变量属于类,而实例变量属于对象。静态变量在类加载时初始化,实例变量在对象创建时初始化。 13. 不能从`static`方法内部直接调用非`static`方法,因为`static`方法与对象无关,无法访问对象特有的非`static`成员。 14. `Integer`是`int`的包装类,用于对象形式的操作。`Integer`对象在一定范围内可以直接与`int`进行自动装箱和拆箱。 15. `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11,`Math.round()`方法四舍五入到最接近的整数。 16. 下面的代码不妥之处可能是缺少异常处理,如空指针异常。 17. `public`、`private`、`protected`以及默认访问修饰符(包级私有)分别控制了类成员的可见范围:`public`对所有类可见,`private`只对本类可见,`protected`对本类和子类及同一包内可见,无修饰符则只对同一包内的类可见。 18. `Overload`是重载,方法名相同但参数列表不同;`Override`是重写,子类方法覆盖父类方法,签名必须完全一致,且不能改变返回值类型。 19. 构造器不能被`override`,但可以被重载。 20. 接口可以继承接口,抽象类可以实现接口,但抽象类不能继承具体类(concrete class),静态的`main`方法在抽象类中是合法的。 21. 实现`clone()`方法时,通常会包含`super.clone()`调用来复制对象。 22. 面向对象的特征包括封装、继承、多态。 23. Java通过方法的重写(Override)和向上转型(Upcasting)实现多态。 24. `abstract class`可以包含方法实现,可以有构造器,而`interface`只能声明方法,不能有实现。`abstract class`可以作为类的基类,`interface`是行为规范。 25. `abstract`方法不能同时是`static`、`native`或`synchronized`,因为这些特性与抽象方法的定义相冲突。 26. 内部类(Inner Class)是嵌套在另一个类中的类,分为静态嵌套类(Static Nested Class)和非静态嵌套类(Inner Class)。静态嵌套类不持有外部类的引用,而普通内部类可以直接访问外部类的成员。 27. 内部类可以引用它的包含类的成员,包括私有成员,但静态内部类不能直接访问外部类的非静态成员,需要通过实例引用。 28. A类包含B类的内部类实例,B类可以访问A类的成员,但有一定的访问限制。 以上内容仅是Java面试宝典的部分知识点,完整的学习和掌握Java需要更广泛和深入的学习。