垃圾收集器主要针对堆中的垃圾, 有人问为什么不清除栈的垃圾, 下图为jvm的内存分布图
在java中栈是线程私有的区域, 会随着线程的结束而释放, 而方法区的对象一般声明之后都是不可变的, 不会产生大量垃圾...本地方法栈内 JNI(通常说的本地方法,用native关键字修饰的)引用的对象
方法区中类静态属性引用的对象
比如:Java类的引用类型静态变量
方法区中常量引用的对象
比如:字符串常量池(string...清除阶段:
垃圾回收器会扫描整个堆内存,检查每个对象的标记状态。
未被标记的对象被认定为垃圾对象,因为它们不可达(不与任何根对象相连)。..., 相当于有两个保洁阿姨, 一个保洁阿姨是等你家里垃圾多了之后在进行打扫, 另一个是看到你家里哪个地方有垃圾, 就进行清理, 对于阿姨来说, 第一种阿姨轻松点, 但作为居住的我们肯定喜欢第二种阿姨, 不知道这样说大家有没有感觉到...它可以非常精确 地控制停顿,既能让使用者明确指定在一个长度为M毫秒的时间片段内,消耗在垃圾收 集上的时间不得超过N毫秒,这几乎已经是实时Java (RTSJ)的垃圾收集器的特征了。