方法区会不会进行垃圾回收?

方法区会不会进行垃圾回收?

答:满足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参数 

方法区会不会进行垃圾回收?_第1张图片

启动jar时,如何配置jvm参数

java -Xms512M -Xmx512M -Xmn256M -Xss1M -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=128M -jar XXX.jar

你可能感兴趣的:(jvm,java,开发语言)