Java面试必备知识点详解

需积分: 1 0 下载量 21 浏览量 更新于2024-07-29 收藏 665KB DOC 举报
"java面试宝典" Java面试宝典是一份重要的学习资料,涵盖了广泛的Java基础知识和技术要点,旨在帮助准备Java面试的开发者巩固和提升技能。这份资料包含了27个问题,涉及了Java语言的核心概念、语法特性、面向对象编程、异常处理、内存管理等多个方面。 1. Java源文件可以包含多个类,但只能有一个公共类(public class),其他的类可以是非公共类(non-public classes)。 2. Java没有`goto`语句,它遵循结构化编程原则,鼓励使用控制流语句如`if`、`for`、`while`等。 3. `&`和`&&`都是逻辑运算符,但`&&`是短路运算符,只有在左侧表达式为真时才会计算右侧,而`&`总是会计算两边的表达式。 4. 跳出多重嵌套循环可以使用`break`语句配合标签(label)来实现。 5. `switch`语句不能作用于`byte`,但自Java 7开始可以作用于`char`和`String`。 6. 在`short`变量上直接加1可能导致溢出,因此`s1=s1+1`可能会出错,而`s1+=1`会自动转换为`int`类型再进行加法运算,确保不会溢出。 7. `char`型变量可以存储单个Unicode字符,包括中文汉字。 8. 计算2乘以8最有效率的方式是直接写`2 * 8`。 9. 设计一个能处理一百亿计算的计算器要考虑数值类型的选择和防止溢出。 10. `final`修饰变量时,如果修饰的是引用,则引用不能改变;如果修饰的是对象,对象的引用不能变,但对象内的状态可以变。 11. `==`比较的是变量的引用,而`equals()`方法比较的是对象的内容。 12. 静态变量属于类,生命周期与类相同;实例变量属于对象,生命周期与对象相同。 13. 不能从`static`方法内部直接调用非`static`方法,因为非`static`方法依赖于对象实例。 14. `Integer`是`int`的包装类,它们之间存在自动装箱和拆箱,`Integer`支持方法调用等特性,而`int`是原始类型。 15. `Math.round(11.5)`等于12,`Math.round(-11.5)`等于-11。 16. 缺少代码无法分析其不妥之处,通常要注意类型匹配、变量初始化等问题。 17. `public`、`private`、`protected`分别代表不同的访问权限,无修饰符代表包级私有。 18. `Overload`(重载)是方法签名不同,返回值类型不影响重载;`Override`(重写)是子类方法覆盖父类方法,方法名、参数列表必须完全一致。 19. 构造器不能被`override`,但可以被重载。 20. 接口可以继承接口;抽象类可以实现接口;抽象类不能继承具体类;抽象类可以有静态的`main`方法,但不会执行。 21. 实现`clone()`方法时,通常会包含`super.clone()`调用,以创建对象的浅复制。 22. 面向对象的特征包括封装、继承、多态。 23. Java通过方法重写(Override)和方法多态来实现多态性。 24. `abstract class`可以包含抽象方法和非抽象方法,而`interface`只能包含抽象方法。 25. 抽象方法不能同时是`static`、`native`或`synchronized`。 26. 内部类是定义在另一个类内部的类,`StaticNestedClass`是静态嵌套类,不需要外部类的实例就能创建;`InnerClass`是普通内部类,需要外部类的实例才能创建。 27. 内部类可以访问包含类的所有成员,包括私有成员,但不能访问`private static`成员。 28. 匿名内部类是没有名字的类,常用于简洁地实现接口或父类的特定方法。 这些问题是Java面试中常见的问题,了解并掌握这些问题的答案将有助于在面试中表现出色。