java之垃圾回收机制

发布时间:2023-07-29 15:00

目录

垃圾回收机制与内存泄漏

GC(garbage collection)的分类

GC判断策略

1.引用计数

2.可达性分析(解决循环依赖问题)

GC收集算法

1.复制算法

2.标记清除算法

3.标记整理算法

JVM所用gc判断策略

分代垃圾收集 

JVM内存(堆里)

1.新生代

2.老生代

新生代与老生代所用gc收集算法

关于新生代与老生代的理解 

三种算法比较

1.复制算法

2.标记清楚算法

3.标记整理算法


垃圾回收机制与内存泄漏

垃圾回收机制:主要是对内存的释放,因为在创建对象时要申请一个空间。

  1. 不再使用的内存空间应回收
  2. java消除了程序员回收无用内存空间的职责,提供了一种系统级别线程跟踪储存空间的分配状况,在JVM的空闲时,检查并释放可被释放的存储空间。
  3. 垃圾收集在java程序运行中自动进行,程序员无法精确控制干预。
  4. GC的自动回收提高了内存空间的使用效率,也提高了编程人员的利用效率,减少了因为没有释放空间而导致的内存泄露。

内存泄漏:内存一直被占着却不能使用。

GC(garbage collection)的分类

  1. 自动GC:一般在JVM内存不足时由JVM系统自动对内存进行垃圾回收
  2. 手动GC:手动的进行内存的分配和释放,如果忘记释放,对应的内存不能被再次使用 
System.gc();  //提醒JVM的垃圾回收执行GC,但是不确定是否马上执行GC

GC判断策略

1.引用计数

每个对象都有一个引用计数属性,新增一个引用时,计数加一,引用释放时,计数减一,引用计数为0时可以回收,此方法简单,无法解决循环依赖问题。

java之垃圾回收机制_第1张图片

  • 绿色云朵是内存中的根对象,表示程序中正在使用的对象
  • 蓝色圆圈是内存中的活动对象,其中的数字表示其引用计数
  • 灰色圆圈是内存中没有活动对象引用的对象,表示非活动对象 

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号