《Thinking in Java》读书笔记:初始化与清除

2星 需积分: 10 2 下载量 124 浏览量 更新于2024-09-20 收藏 28KB DOC 举报
"Thinking in Java 读书笔记" 这篇读书笔记涵盖了 "Thinking in Java" 这本经典书籍中的核心概念,特别是关于初始化和清除的部分。作者强调了深入理解和掌握这些概念对于Java编程的重要性。 **第四章 初始化和清除** 1. **构建器(Constructor)**: 构造器是用于初始化新创建对象的特殊方法,它没有返回值,不同于其他void方法。如果一个类没有定义任何构造器,Java编译器会自动提供一个默认的构造器。 2. **方法过载(Overloading)**: 这是指在同一个类中可以有多个同名方法,但它们的参数列表不同(参数的数量、类型或顺序)。这样可以根据传入的参数来选择执行哪个方法。 3. **收尾和垃圾收集(CleanUp and Garbage Collection)**: - **finalize()** 方法:Java提供了`finalize()`方法,允许在对象被垃圾收集之前执行清理操作。例如,如果对象在非Java代码(如C或C++)中分配了内存,`finalize()` 可以在垃圾收集前调用对应的释放内存的原生方法(如C的`free()`)。 - **垃圾收集(GC)**:Java的垃圾收集器主要负责回收堆内存中的对象,但不处理栈内存。垃圾收集器在确定一个对象不再被引用时才会释放其占用的内存。`finalize()` 方法会在对象即将被垃圾收集时调用,但不是立即回收内存,而是等到下一次GC时。 - 调用时机: - 当对象被垃圾收集时自动调用。 - 程序退出时,为每个存活的对象调用一次`finalize()`。 - 显式调用 `System.gc()`,但这并不保证`finalize()`一定会被调用,因为垃圾收集不是实时的。 这些笔记详细阐述了Java中初始化对象的过程,以及如何利用构造器和`finalize()`方法来进行对象生命周期的管理。通过学习这些内容,读者可以更好地理解Java内存管理机制,这对于编写高效且无内存泄漏的代码至关重要。同时,掌握方法过载的概念可以帮助编写更加灵活和可扩展的代码。