java对象与垃圾回收

    xiaoxiao2025-01-10  15

    GC垃圾回收机制在CPU空闲或内存不足时自动进行垃圾回收,程序员无法控制回收的时间与顺序。缺点事影响开销性能,Java虚拟机必须跟踪哪些是有用的对象或者无用的对象。只能回收内存资源,io 数据库资源不能回收。为了更快让垃圾回收机制回收那些对象,可以将引用变量设置为NULL,暗示垃圾回收器回收。垃圾回收是不可预知性的,即使system.gc是建议回收。垃圾回收精确性包括两个方面:1.精确的标记着活的对象,2精确的定位对象间的引用关系。

    1对象在内存中的状态:

    可达状态:当一个对象被创建后,若有一两个以上的对象引用他,则处于可达状态

    可恢复状态:程序中某个对象不再有引用指向他,他就进入了可恢复状态。系统的垃圾回收机制准备回收时会调用finalize()方法进行资源清理,如果从新让一个引用变量引用该对象,则这个对象会再次变为可达状态,否则变为不可达状态。

    强制垃圾回收:system.gc()与runtime.getRuntime().gc()建议回收,但不一定立即回收。可以在类中重写finalize()方法检测。

    最新回复(0)