java什么时候进行垃圾回收,垃圾回收的执行流程

Posted aoshicangqiong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java什么时候进行垃圾回收,垃圾回收的执行流程相关的知识,希望对你有一定的参考价值。

java的垃圾回收分为

三个区域新生代 老年代 永久代

技术分享图片

一个对象实例化时 先去看伊甸园有没有足够的空间
如果有 不进行垃圾回收 ,对象直接在伊甸园存储.
如果伊甸园内存已满,会进行一次minor gc
然后再进行判断伊甸园中的内存是否足够
如果不足 则去看存活区的内存是否足够.
如果内存足够,把伊甸园部分活跃对象保存在存活区,然后把对象保存在伊甸园.
如果内存不足,向老年代发送请求,查询老年代的内存是否足够
如果老年代内存足够,将部分存活区的活跃对象存入老年代.然后把伊甸园的活跃对象放入存活区,对象依旧保存在伊甸园.
如果老年代内存不足,会进行一次full gc,之后老年代会再进行判断 内存是否足够,如果足够 同上.
如果不足 会抛出OutOfMemoryError.

技术分享图片

GC虽然可以进行内存空间的释放,但同时频繁的GC一定会影响性能,GC发生的频率越低,你的系统就越高效.

 

支持原创::https://blog.csdn.net/jidong2622/article/details/78147364
版权声明:本文为博主原创文章,转载请附上博文链接!

 











以上是关于java什么时候进行垃圾回收,垃圾回收的执行流程的主要内容,如果未能解决你的问题,请参考以下文章

Java中垃圾回收有啥目的?啥时候进行垃圾回收?

Java垃圾回收机制是啥?

JAVA 中能否通过程序强迫垃圾回收立即执行?

Java垃圾回收概览

面试题-Java基础-垃圾回收

Java会造成内存泄漏,多态,垃圾回收,clone