Java学习笔记(五)垃圾强制回收
2014-07-26 21:27
211 查看
Java中提供了垃圾强制回收机制的方法System.gc(),但是系统并不保证会立即进行垃圾回收,而是JVM根据定义的一套垃圾回收算法来确定,算法用来提高垃圾回收的效率。
判断一个存储单元是否是垃圾的依据是:该存储单元所对应的对象是否仍被程序所用,即是否有引用指向该对象。Java的垃圾回收器自动扫描对象的动态内存区,对所引用的对象加标记,然后把没有引用的对象作为垃圾收集起来并释放出去。
Java没有提供析构方法,但提供了一个类似的方法:protected void finalize();
程序说明:
程序运行结果:
Book,"Roman Holiday",isdestroyed!
Book,"Java How toProgram",is destroyed!
Book,"Gonewith wind",is destroyed!
说明:上述结果是eclipse在调试模式下得出的!
判断一个存储单元是否是垃圾的依据是:该存储单元所对应的对象是否仍被程序所用,即是否有引用指向该对象。Java的垃圾回收器自动扫描对象的动态内存区,对所引用的对象加标记,然后把没有引用的对象作为垃圾收集起来并释放出去。
Java没有提供析构方法,但提供了一个类似的方法:protected void finalize();
程序说明:
class J_Book { private String name; J_Book(String name) { this.name = name; } // 覆盖默认的finalize方法 protected void finalize() { System.out.println("Book,\"" + name + "\",is destroyed!"); } } public class J_Finalize { public static void main(String[] args) { J_Book book1 = new J_Book("Gone with wind"); // 匿名的实例,被Java判定为垃圾内存,会被当做垃圾回收 new J_Book("Java How to Program"); new J_Book("Roman Holiday"); book1 = new J_Book("Thingking in Java"); // 强制垃圾回收,注意编译系统不会立刻垃圾回收,由自己的算法来决定何时执行垃圾回收 System.gc(); } }
程序运行结果:
Book,"Roman Holiday",isdestroyed!
Book,"Java How toProgram",is destroyed!
Book,"Gonewith wind",is destroyed!
说明:上述结果是eclipse在调试模式下得出的!
相关文章推荐
- 垃圾回收编程--ms.net文档阅读笔记
- .NET深入学习笔记(3):垃圾回收与内存管理
- JVM学习笔记(1、 基本结构;2、Java代码编译和执行的整个过程3、内存管理和垃圾回收 4、 内存调优 )
- 25、深入理解计算机系统笔记,虚拟存储器,垃圾回收
- 自动垃圾回收学习笔记-垃圾回收算法
- Java 学习笔记 (13) - 基本内存分析 和 垃圾回收机制
- JVM学习笔记(三)------内存管理和垃圾回收
- 自动垃圾回收学习笔记-一些基本概念
- 【转】Flash Player的垃圾内存回收机制:能否强制回收?
- .NET下的强制垃圾回收办法
- .NET深入学习笔记(3):垃圾回收与内存管理
- C#或者.NET下的强制垃圾回收办法
- c#学习笔记-.net垃圾回收机制
- C#或者.NET下的强制垃圾回收办法
- 【转】Flash Player的垃圾内存回收机制:能否强制回收?
- as3 强制垃圾回收
- 垃圾回收笔记
- flash的强制垃圾回收 flash内存释放
- 自动垃圾回收学习笔记-我们为什么需要自动垃圾回收
- 垃圾回收笔记 托管和非托管资源