时间:2021-07-16 | 标签: | 作者:Q8 | 来源:网络
小提示:您能找到这篇{Java培训基础学习之Java虚拟机知识解析}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的Java培训基础学习之Java虚拟机知识解析内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
所谓JVM,即Java Virtual Machine(Java虚拟机)的缩写。众所周知,Java2019年解决危机公关语言的一个非常重要的特点就是与平台的无关性,但是它们又是怎么扯上关系的呢?小编来为大家解答。
作为Java的基础知识,很多企业在面试时会提问求职者Java虚拟机的一些知识:
1、Java虚拟机为新生对象分配内存有哪两种方式?
答:指针碰撞和空闲列表。Java虚拟机采用哪种方式为新生对象分配内存,取决于所使用的垃圾收集器,当垃圾收集器具有整理过程时,虚拟机将采用指针碰撞的方式;当垃圾收集器的回收过程没有整理过程时,则采用空闲列表方式。
2、Java虚拟机运行时数据区包括哪些?
答:根据Java虚拟机规范的规定,虚拟机内存在Java程序运行时被分为程序计数器、Java虚拟机栈、本地方法栈、堆和方法区五个区域。
3、Java虚拟机类加载的周期包括哪几个阶段?
答:类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载七个阶段。
4、Java虚拟机分配过程中如何解决线程安全?
答:两种方式:1)对分配内存空间的动作进行同步处理——实际上虚拟机采用CAS配上失败重试的方式保证更新操作的原子性;2)把内存分配的动作按照线程划分在不同的空间之中进行,即每个线程在Java堆中预先分配一小块内存,称为本地线程分配缓冲(TLAB)。哪个线程要分配内存,就在哪个线程的TLAB上分配,只有TLAB用完并分配新的TLAB时,才需要同步锁定。虚拟机是否使用TLAB,可以通过-XX:+/-UseTLAB参数来设定。
5、Java虚拟机对象在内存中如何布局?
答:在HotSpot虚拟机中,对象在内存中存储的布局可以分为3块区域:对象头(Header)、实例数据(Instance 电视广告列表Data) 和对齐填充(Padding)。
6、Java虚拟机中主流的访问方式有哪几种?
答:有使用句柄和直接指针两种。使用句柄访问的最大好处就是reference中存储的是稳定的句柄地址,使用直接指针访问的最大好处就是速度更快,节省了一次指针定位的时间开销。
|
上一篇:应用场景如何抉择容器和虚拟机
下一篇:深入理解Java虚拟机
小提示:您应该对本页介绍的“Java培训基础学习之Java虚拟机知识解析”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通Java培训基础学习之Java虚拟机知识解析的相关事宜。
关键词:Java培训基础学习之Java虚拟