Java面试题(二十六) 面试官必问的JVM基本配置参数有哪些?

一. 常用的X参数

-Xms:
初始大小内存,默认为物理内存1/64,等价于-XX:InitialHeapSize

-Xmx:
最大分配内存,默认物理内存1/4,等价于-XX:MaxHeapSize

-Xss:
设置单个线程栈的大小,默认542K~1024K ,等价于-XX:ThreadStackSize

-Xmn:
设置年轻代的大小

二. 常用的XX参数

-XX:MetaspaceSize
设置元空间大小
元空间的本质和永久代类似,都是对JVM规范中方法区的实现,不过元空间与永久代最大的区别在于:
元空间并不在虚拟机中,而是在本地内存中。因此,默认元空间的大小仅受本地内存限制。

-XX:+PrintGCDetails
输出详细GC收集日志信息

-XX:SurvivorRatio
设置新生代中Eden和S0/S1空间的比例
默认-XX:SurvivorRatio=8, Eden:S0:S1=8:1:1

-XX:NewRatio
设置年轻代与老年代在堆结构的占比
默认-XX:NewRatio=2  新生代在1,老年代2,年轻代占整个堆的1/3

-XX:MaxTenuringThreshold
设置垃圾的最大年龄
默认-XX:MaxTenuringThreshold=15
如果设置为0,年轻代对象不经过Survivor区,直接进入老年代。对于年老代比较多的应用,可以提高效率。
如果将此值设置为一个较大的值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对对象在年轻代的存活时间,增加在年轻代即被回收的概率。

-XX:+UseSerialGC
串行垃圾回收器

-XX:+UseParallelGC
并行垃圾回收器

在IDEA中使用一下这些参数:

配置参数:
-Xms128m -Xmx4096m -Xss1024K -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC

在IDEA里配置参数示意图:
在这里插入图片描述
在这里插入图片描述

总结:基本常用常考的JVM参数大概就这些了,先熟记这些参数,在言其他。

猜你喜欢

转载自blog.csdn.net/w_x_A__l__l/article/details/106984495
今日推荐