java 垃圾回收机制
2014-08-01 11:28
183 查看
java中垃圾收集器用来监视java程序的运行,当对象不再使用时,就自动释放对象所使用的内存。java使用一系列指针来跟踪对象的各个引用
(并不是直接跟踪每个对象),并用一个对象表将这些指针映射为对象的引用。这样,java的垃圾收集器能够以独立的线程在后台运行,并依次检查
每个对象。通过更改对象表项,垃圾收集器可以标记对象、移除对象、移动对象或检查对象。
垃圾收集器是自动运行的,一般情况下,无法显示的请求垃圾收集器。程序运行时,垃圾收集器会时不时的检查对象的各个引用,并回收无引用
对象占用的内存。调用System类的静态gc()方法可以运行垃圾收集器,但这样并不能保证立即回收指定对象。
java虚拟机中的自动垃圾回收机并不能阻止程序运行溢出内存,假设一个程序保持创建一个引用时,其他的任何引用都没有被抛弃,这样也会造
成内存耗尽的结果。虽然垃圾回收机能在后台独立运行,但是塔并不是一个独立的平台,它具有平台依赖性。
判断一块内存是否符合垃圾收集器的标准有:
1)给对象赋予了空值null,以后再没有调用过。
2)给对象赋予了新值,即重新分配了内存空间。
对于频繁申请内存和释放内存的操作,建议还是自己控制一下为好,此时或许System.gc()并不一定适合,最好使用finalize强制执行或者写自己的finalize方法。
(并不是直接跟踪每个对象),并用一个对象表将这些指针映射为对象的引用。这样,java的垃圾收集器能够以独立的线程在后台运行,并依次检查
每个对象。通过更改对象表项,垃圾收集器可以标记对象、移除对象、移动对象或检查对象。
垃圾收集器是自动运行的,一般情况下,无法显示的请求垃圾收集器。程序运行时,垃圾收集器会时不时的检查对象的各个引用,并回收无引用
对象占用的内存。调用System类的静态gc()方法可以运行垃圾收集器,但这样并不能保证立即回收指定对象。
java虚拟机中的自动垃圾回收机并不能阻止程序运行溢出内存,假设一个程序保持创建一个引用时,其他的任何引用都没有被抛弃,这样也会造
成内存耗尽的结果。虽然垃圾回收机能在后台独立运行,但是塔并不是一个独立的平台,它具有平台依赖性。
判断一块内存是否符合垃圾收集器的标准有:
1)给对象赋予了空值null,以后再没有调用过。
2)给对象赋予了新值,即重新分配了内存空间。
对于频繁申请内存和释放内存的操作,建议还是自己控制一下为好,此时或许System.gc()并不一定适合,最好使用finalize强制执行或者写自己的finalize方法。
相关文章推荐
- Java的垃圾回收机制详解和调优
- Java的垃圾回收(Garbage Collection)机制
- JVM详解之Java垃圾回收机制详解和调优
- 【转载】 全面分析Java的垃圾回收机制
- 深刻剖析经典面试题之二:Java与C#的垃圾回收机制
- Java与C#的垃圾回收机制
- Java的垃圾回收机制
- java的垃圾回收机制详解和调优
- Java与C#的垃圾回收机制
- java中的垃圾回收机制
- Java垃圾回收机制浅解
- 全面分析Java的垃圾回收机制
- java中的垃圾回收机制GC
- Java垃圾回收机制详解和调优
- Java的垃圾回收机制详解和调优
- JAVA垃圾回收机制与内存泄露问题
- Java的垃圾回收机制详解和调优大全
- 深刻剖析经典面试题之二:Java与C#的垃圾回收机制
- 全面分析Java的垃圾回收机制
- JVM详解之Java垃圾回收机制详解和调