堆,个个线程共享区,共享,就存在着线程安全问题。gc的主要作用域就是堆。
堆分为三部分 年轻代,老年代(前两者默认比例1:2),永久代(8以后叫元空间)。
年轻代又分为伊甸园区(圣经里亚当和夏娃创造人类的地方),幸存者1区,幸存者2区。默认占比8:1:1
参数设置 堆的大小 -Xms -Xmx
当伊甸园区满的时候,会触发monir gc,当老年代满的时候会触发majir gc,full gc是年轻代,老年代,方法区都回收
7以后jvm默认开启逃逸分析,只在方法内用到的对象,会分配在栈中,执行效率高,不用gc。所以堆是唯一存放对象的地方吗?不是啦
2020-08-18 JVM 堆
最新推荐文章于 2022-07-08 09:55:12 发布