Java面试题和答案(经典).pdf

preview
需积分: 0 6 下载量 91 浏览量 更新于2024-01-26 收藏 117KB PDF 举报
在 Java 中,`final`、`finally` 和 `finalize` 是三个不同的概念,它们各自扮演着独特的角色: 1. `final`:这是一个修饰符,用于声明一个类、变量或方法不能被修改。对于类,`final` 表示它不能有子类;对于变量,一旦赋值后就不能再次改变;对于方法,`final` 使得方法不能被重写。 2. `finally`:在异常处理中,`finally` 块用于确保无论是否发生异常,都会执行的代码。这通常用于清理资源,如关闭文件流或网络连接。即使有异常被捕获并处理,`finally` 里的代码也会被执行。 3. `finalize`:Java 中的 `finalize()` 方法是用于对象被垃圾收集器回收前进行最后清理工作的。当一个对象不再被引用时,垃圾收集器在回收内存前可能会调用 `finalize()` 方法。但要注意,这不是必需的,垃圾收集器可能不会立即或根本不调用 `finalize()`,并且不应依赖此方法进行重要的资源清理。 关于匿名内部类,它可以实现接口,但不能继承其他类。匿名内部类常常用于简洁地创建一个仅需使用一次的类实例,尤其在事件处理器或回调函数中常见。 静态嵌套类(Static Nested Class)和内部类(Inner Class)的主要区别在于: - 静态内部类不持有对外部类的隐式引用,可以直接实例化,而无需外部类的对象。 - 内部类则需要一个外部类的对象来实例化,它可以访问外部类的私有成员。 `&` 和 `&&` 的差异在于: - `&` 是位运算符,用于按位与操作,也可用于逻辑与,但此时两边的操作数都会被计算。 - `&&` 是布尔逻辑运算符,只有当左侧表达式为真时,才会计算右侧表达式,这是一种短路操作。 `HashMap` 和 `Hashtable`: - `HashMap` 不保证元素的顺序,允许空键和空值,且是非同步的。 - `Hashtable` 与 `HashMap` 功能相似,但不允许空键和空值,且是线程安全的。 `Collection` 和 `Collections`: - `Collection` 是一个接口,是所有单列集合的根接口,定义了集合的基本操作。 - `Collections` 是一个工具类,提供了大量静态方法,用于操作集合,如排序、查找、填充等。 `assert` 语句用于断言某个条件应该始终为真,用于调试。默认情况下,断言是关闭的,可以通过 `-ea` 或 `-enableassertions` 在运行时启用。 垃圾收集器(GC)是 Java 的自动内存管理机制,它负责识别并释放不再使用的对象,以避免内存泄漏。GC 的存在使程序员不必手动管理内存,简化了编程,但也可能导致性能影响,尤其是在大型复杂应用中。
身份认证 购VIP最低享 7 折!
30元优惠券