JAVA面试题JVM篇(三)

JAVA面试题JVM篇(三)



前言

JVM是Java的运行基础,面试的时候一定会问到,而这一部分平常在做项目的时候很少了解到。所以这块知识点偏理论知识,需要了解的东西也有很多。
到了大三的学期的暑假,即将面临找工作的考验。希望这份面试资料能够帮住大家学到自己的知识盲区。加油,我命由我不由天!!!


一、对象头具体包含哪些内容?

对象在内存中的分布实际包含3个部分:
1、对象头
2、实例数据
3、对齐填充
而对象头包含俩部分。
1、对象运行时所需的数据,也被称为Mark Word,也就是用于轻量级锁和偏向锁的关键点。具体的内容包含对象的hashcode、分代年龄、轻量级锁指针、重量级锁指针、GC标记、偏向锁线程ID、偏向锁时间戳。
2、存储类型指针,也就是指向类的元数据的指针,通过这个指针才能确定对象是属于哪个类的实例。
如果是数组的话还包含了数组的长度。
在这里插入图片描述

二、你知道哪些JVM调优参数?

堆栈内存相关:
1、Xms设置初始堆的大小
2、Xms设置最大堆的大小
3、Xmn设置年轻代大小,相当于同时配置-XX:NewSize和-XX:MaxNewSize位一样的值
4、-Xss每个线程的堆栈大小
5、-XX:NewSize设置年轻代大小
6、-XX:MaxNewSize年轻代最大值
7、-XX:NewRatio年轻代与年老代的比值
8、-XX:SurvivorRatio Eden区与Survivor区的的比值
9、-XX:PretenureSizeThreshold 当创建的对象超过指定大小时,直接把对象分配在老年代。
10、-XX:MaxTenuringThreshold设定对象在Survivor复制的最大年龄阈值,超过阈值转移到老年代

垃圾收集器相关:
1、 -XX:UseParallelGC:选择垃圾收集器位并行收集器。
2、-XX:ParallelGCThreads=20:配置并行收集器的线程数
3、-XX:+UseConcMarkSweepGC:设置年老代为并发收集。
4、-XX:CMSFullGCsBeforeCompaction=5 由于并发收集器不对内存空间进行压缩、整理,所以运行一段时间以后会产生“碎片”,使得运行效率降低。此值设置运行5次GC以对内存空间进行压缩、整理。
5、-XX:+UseCMSCompactAtFullCollection:打开对年老代的压缩。可能会影响性能,但是可以消除碎片

三、如何选择垃圾收集器?

1、如果你的堆大小不是很大(比如100M),选择串行收集器一般是效率最高的。
2、如果你的应用运行在单核的机器上,或者你的虚拟机核数只有单核,选择串行收集器依然是合适的,这时候启用一些并行收集器没有任何受益。
3、如果你的应用是“吞吐量”优先的,并且对较长时间的停顿没有什么特别的要求,选择并收集器是比较好的。
4、如果你的应用对响应时间要求较高,想要教少的停顿,那么选择G1、ZGC、CMS都是合理的。

四、什么是类加载器?

类加载器是一个用来加载类文件的类。java源代码通过javac编译器编译成类文件。然后JVM来执行类文件中的字节码来执行程序。类加载器负责加载文件系统、网络或其他来源的类文件。

五、什么是年轻代?

年轻代也叫新生代,主要是用来存放新生的对象。新生代又细分为 Eden区、From区、To区。
新生的对象会被分到Eden区,如果占内存较大会被直接分配到老年代区。当Eden区内存不够的时候就会触发MinorGC(Survivor满不会引发MinorGC,而是将对象移动到老年代中)。

总结

JVM虚拟机这一块知识点,不仅在学校课中很少认真学习过,而且私下没有认真去了解。对知识点非常的生疏。很多的名词和专业术语都很陌生,学起来有点吃力,这仅是我个人的问题。希望能够坚持下去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力变好的小贤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值