两道JVM面试题,竟让我回忆起了中学时代!
作者:肥朝
原文链接:https://mp.weixin.qq.com/s/4wj6anal0blloseasfiuvw
中学授课模式
考虑到可能有部分粉丝对jvm参数不清楚,所以我们参照中学的授课模式,给大家做一些知识上的普及。理论上,jvm参数主要分为三类
1.标配参数
该类型参数在jdk各个版本之间稳定,很少有大的变化。比如查看版本号
java -version
2.x参数
这些用的不多,看看就好。 // 解释执行 -xint // 第一次使用就编译成本地代码 -xcomp // 混合模式 -xmixed
3.xx参数
3.1 布尔类型
-xx:+ 或者 - 某个属性值,+ 表示开启,-表示关闭。例如: // 打印gc详细信息 -xx:+printgcdetails // 不打印gc详细信息 -xx:-printgcdetails
3.2 kv类型
-xx:属性key=属性值value,例如
// 设置metaspace的大小
-xx:metaspacesize=1024m
中学考试试题
好了,现在课讲完了,那么我们来两道经典的jvm面试题。
填空题
在线上生产环境,jvm的xms
和xmx
一般设置成_____
比例。原因是____________
。
选择题
我们常设置的jvm参数xms
和xmx
,属于下列哪种类型的jvm参数?
a.标配参数
b.x参数
c.xx参数
d.以上均不是
解答
大家看这两道题,是不是有中学试卷的味道?上课教的东西,到了考试就全变样了,美名为教材内容考点变形,变形可以,可这都变得面目全非了啊!高三的时候,老师告诉我们,每年高考题他都全部命中。那一刻,我以为清华北大稳了,都准备要发朋友圈装逼了!
后面才知道,他的意思是,他把课本的内容都给我们讲了,然后高考的内容都源于课本,所以他每年都全部命中。
言归正传,那么我们来解答一下这两道题。
1.xms
和xmx
一般设置成1:1
比例,原因是避免在gc后调整堆大小带来的压力
。
2.选c,因为-xms
等价于-xx:initialheapsize
,-xmx
等价于-xx:maxheapsize
。所以他们都是xx
类型参数。易错选型是b。
这两道题你都答对了吗?或者你有什么中学的回忆,也欢迎留言告诉肥朝。
免费java高级资料需要自己领取,涵盖了java、redis、mongodb、mysql、zookeeper、spring cloud、dubbo高并发分布式等教程,一共30g。
传送门:https://mp.weixin.qq.com/s/jzddfh-7ynudmkjt0irl8q