Java面试必备:基础篇详解

需积分: 0 0 下载量 64 浏览量 更新于2024-09-25 收藏 282KB PDF 举报
"Java基础面试宝典" 在Java编程语言中,面试经常涉及到许多核心概念,以下是一些关键知识点的详细解释: 1. **跳出多重嵌套循环**:在Java中,`break`语句用于立即退出最内层的循环,而`return`则不仅可以结束循环,还可以返回函数值。如果在方法或主程序中使用`return`,程序执行将立即停止,并返回到调用它的位置。 2. **Java源文件与类的关系**:一个`.java`源文件可以包含多个类,但最多只能有一个公开的`public`类,且这个`public`类的名称必须与文件名相同。其他非`public`类不受此限制。 3. **内存泄漏**:Java虽然有自动垃圾回收机制,但依然可能发生内存泄漏。例如,当一个大对象被两个引用同时持有,即使其中的一个引用不再使用,由于另一个引用的存在,对象不会被GC回收,这就可能导致内存泄漏。 4. **垃圾回收器**:垃圾回收器通过追踪对象的可达性来决定何时回收内存。它使用有向图模型来跟踪堆中的对象,当一个对象变得“不可达”时,就会被回收。尽管可以使用`System.gc()`尝试触发垃圾回收,但其执行并不保证,且不推荐在生产环境中频繁使用。 5. **逻辑与条件操作的区别**:`&`和`&&`都是逻辑操作符,但`&`是位运算符,适用于任何数据类型,而`&&`是逻辑与运算符,仅适用于布尔类型。此外,`&&`具有短路特性,即如果左侧表达式为假,右侧表达式将不会被执行。 6. **位移运算符**:`2 << 3` 是左移运算符,相当于2乘以2的3次方,即2乘以8。 7. **char类型存储中文**:Java的`char`类型使用Unicode编码,每个`char`占据16位,因此可以存储包括中文在内的多数字符。 8. **浮点数赋值**:直接将`3.4`赋给`float`变量会导致精度丢失,正确的做法是使用强制类型转换,如`float f = (float)3.4`。 9. **位运算符与逻辑运算符**:`&`是位运算符,`&&`是逻辑与运算符。`&`对所有位进行运算,无论条件如何都会执行;而`&&`是短路运算符,如果第一个操作数为假,则不会评估第二个操作数。 10. **GC(垃圾收集)**:GC是Java的一项重要特性,它自动清理不再使用的对象,避免了程序员手动释放内存的问题,以防止内存泄漏和系统崩溃。有了GC,开发者可以更专注于程序逻辑,而不必担心内存管理。 11. **使用`assert`关键字**:`assert`用于断言,它在测试和调试时很有用,用于检查程序中某些条件是否满足。如果断言的条件为假,程序会抛出一个`AssertionError`。 理解并熟练掌握这些Java基础面试知识点,能有效提升面试者在Java程序员面试中的表现。在实际工作中,这些知识也是编写高质量、健壮代码的基础。