首页域名资讯 正文

Java培训基础学习之Java虚拟机知识解析

2024-11-24 7 0条评论

Java培训基础学习之Java虚拟机知识解析

  • 作者:新网
  • 来源:新网
  • 浏览:100
  • 2018-04-24 12:07:33

所谓JVM,即Java Virtual Machine(Java虚拟机)的缩写。众所周知,Java语言的一个非常重要的特点就是与平台的无关性,但是它们又是怎么扯上关系的呢?小编来为大家解答。

  

< div>  所谓JVM,即Java Virtual Machine(Java 虚拟机)的缩写。众所周知,Java语言的一个非常重要的特点就是与平台的无关性,但是它们又是怎么扯上关系的呢?小编来为大家解答。   作为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中存储的是稳定的句柄地址,使用直接指针访问的最大好处就是速度更快,节省了一次指针定位的时间开销。  

文章版权及转载声明

本文作者:亿网 网址:https://www.edns.com/ask/post/149332.html 发布于 2024-11-24
文章转载或复制请以超链接形式并注明出处。