方法区会不会进行垃圾回收?
答:满足3个条件,方法区也会回收相应的类,条件如下
1、所有的对象实例被回收
2、加载这个类的classloader被回收
3、对类的class对象没有任何引用
什么情况下会触发新生代的垃圾回收?
答:新生代的伊甸区无法存放新增的对象,就会触发新生代的垃圾回收。
什么情况下会触发老年代的垃圾回收?
答:老年代无法存放新生代垃圾回收给过来的对象,就会触发老年代的垃圾回收,当然也有可能是大对象直接放到老年代,导致老年代被撑满。
jvm相关参数如下
-Xms,-Xmx :-X一般代表的是一些JVM参数,ms 是memory start,mx 是memory max
-Xms是堆内存的初始大小,-Xmx为堆内存的最大大小,一般会将初始大小和最大大小设置为相同的值,原因:防止内存抖动,因为在堆内存不够使用的时候,jvm向操作系统申请内存需要一定的开销。
-Xmn:是堆内存中新生代的大小,n代表的new,那么老年代的大小就是Xms-Xmn了
-XX:Permsize :永久代大小,也就是方法区,-XX:MaxPermSize 永久代最大大小
(jdk1.8以后的版本 -XX:Metaspacesize 和 -XX:MaxMetaspaceSize)
-Xss:每个线程的栈内存大小 (stack size)
idea中如何配置jvm参数

启动jar时,如何配置jvm参数
java -Xms512M -Xmx512M -Xmn256M -Xss1M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -jar XXX.jar
本文介绍了Java方法区的垃圾回收条件,包括所有对象实例被回收、加载类的classloader被回收以及类的class对象无引用。同时,阐述了触发新生代和老年代垃圾回收的情况,新生代是在伊甸区无法存放新对象时,老年代则是在无法存放新生代晋升或大对象时。还详细说明了JVM的相关参数,如-Xms、-Xmx、-Xmn、-XX:MetaspaceSize等,并解释了它们的作用。此外,讨论了在IDEA中配置JVM参数的方法以及启动jar包时如何指定JVM参数。
780

被折叠的 条评论
为什么被折叠?



