JVM篇常见题型讲解(女蓝夺冠,yyds)

141 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第三天,点击查看活动详情

**   前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~**

内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux等技术栈

信仰永恒,国庆快乐,女篮夺冠,yyds

福大.jpg 目录

进阶篇

26,什么是空闲列表?

27,什么是TLAB?

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

本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~ 


进阶篇

26,什么是空闲列表?

如果Java堆内存中的内存并不是规整的,已被使用的内存和空闲的内存相互交错在一起,不可以进行指针碰撞啦,虚拟机必须维护一个列表,记录哪些内存是可用的,在分配的时候从列表找到一块大的空间分配给对象实例,并更新列表上的记录,这种分配方式就是空闲列表。

27,什么是TLAB?

可以把内存分配的动作按照线程划分在不同的空间之中进行,每个线程在Java堆中预先分配一小块内存,这就是TLAB(Thread Local Allocation Buffer,本地线程分配缓存) 。虚拟机通过-

XX:UseTLAB设定它的。

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

在我们常用的Hotspot虚拟机中,对象在内存中布局实际包含3个部分:

  1. 对象头

  2. 实例数据

  3. 对齐填充

而对象头包含两部分内容,Mark Word中的内容会随着锁标志位而发生变化,所以只说存储结构就好了。

  1. 对象自身运行时所需的数据,也被称为Mark Word,也就是用于轻量级锁和偏向锁的关键点。

具体的内容包含对象的hashcode、分代年龄、轻量级锁指针、重量级锁指针、GC标记、偏向

锁线程ID、偏向锁时间戳。

  1. 存储类型指针,也就是指向类的元数据的指针,通过这个指针才能确定对象是属于哪个类的实

例。

如果是数组的话,则还包含了数组的长度。

​编辑

本期分享到此为止,关注博主不迷路,叶秋学长带你上高速~~