Java面试必备知识点详解

需积分: 1 0 下载量 54 浏览量 更新于2024-07-20 1 收藏 2.72MB PDF 举报
"Java面试宝典是一本针对Java程序员面试准备的书籍,涵盖了Java基础知识、语法特性、面向对象、多线程、集合框架、异常处理、IO流、网络编程等多个方面的常见面试问题。该书旨在帮助求职者全面理解和掌握Java技术,以便在面试中脱颖而出。" 以下是基于提供的部分内容详细解释的一些Java知识点: 1. Java源文件可以包含多个类,但只能有一个公开类(public class),其他类可以是非公开的(非public)。 2. Java中没有goto语句,这与C/C++不同,Java使用结构化控制语句如if/else、switch、for、while等来控制程序流程。 3. &和&&的主要区别在于短路逻辑:&&左侧表达式为假时,右侧不会执行;&两侧表达式都会执行,无论结果如何。 4. 要跳出多重嵌套循环,可以使用`break`语句配合标签(label)来跳出特定的循环层。 5. switch语句不能直接作用于byte和long,但可以通过类型转换。在Java 7及以上版本,switch可以用于String。 6. shorts1=1;s1=s1+1;可能会导致编译错误,因为s1+1的结果是int型,需要显式转换回short。而s1+=1则会自动处理类型转换。 7. char类型变量可以存储一个中文汉字,因为UTF-16编码每个中文字符占用两个字节。 8. 计算2乘以8最有效率的方式是使用乘法运算符:`int result = 2 * 8;` 9. 设计一个一百亿的计算器需要考虑数值溢出问题,可以使用BigInteger类来处理大整数。 10. final修饰的变量,其引用不能改变,但引用的对象内容可以改变,除非对象也是final的。 11. "=="比较的是对象的引用,而equals方法比较的是对象的内容。对于基本类型,两者效果相同;对于对象,equals需要重写以进行自定义比较。 12. 静态变量属于类,实例变量属于对象。静态变量由所有类实例共享,实例变量是每个对象独有的。 13. 不可以从static方法内部直接访问非static方法或变量,因为static方法与类关联,而非static与实例关联。 14. Integer是对象,int是基本类型。Integer对象的比较需要使用equals,而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)和接口实现(Implements)来实现多态。 24. abstract class可以包含抽象方法和非抽象方法,而interface只能包含抽象方法。 25. abstract不能与static、native和synchronized同时使用,因为它们代表不同的概念。 26. 内部类是嵌套在另一个类中的类,分为静态内部类(StaticNestedClass)和非静态内部类(InnerClass)。静态内部类可以独立于外部类实例存在,而非静态内部类需要依赖外部类实例。 27. 内部类可以引用包含类的成员,但不能访问private成员,除非它们之间有明确的访问路径。 28. "An"可能是遗漏的部分,通常会接着描述内部类的另一个特性或者问题。 这些知识点的深入理解和应用对于准备Java面试至关重要,可以帮助面试者展示他们的技术水平和对Java语言的理解。