036--JVM面试题汇总

VIP免费
2024-12-11 0 0 21.72KB 6 页 5.9玖币
侵权投诉
JVM 面试题汇总
1.什么是 JVM?它有什么作用?
答: 虚拟机)的缩写,顾名思义它是一个虚拟计算机,
也是  程序能够实现跨平台的基础。它的作用是加载 程序,把字节码翻译成机器
码再交由 执行的一个虚拟计算器。
2.JVM 主要组成部分有哪些?
答:主要组成部分如下:
类加载器(
运行时数据区(
执行引擎(
本地库接口( !
3.JVM 是如何工作的?
答:首先程序在执行之前先要把 代码("#)转换成字节码("),通过类
加载器( )把字节码加载到内存中,但字节码文件是 的一套指令集规
范,并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎
  ) 将字节码翻译成底层机器码,再交由 去执行,执行的过程
中需要调用本地库接口( !)来完成整个程序的运行。
4.JVM 内存布局是怎样的?
答:不同虚拟机实现可能略微有所不同,但都会遵从 虚拟机规范,$虚拟机规
范规定,虚拟机所管理的内存将会包括以下几个区域:
程序计数器(
 虚拟机栈(%&
本地方法栈(%&
 堆('(
方法区(
程序计数器
程序计数器()是一块较小的内存空间,它可以看作是当前线
程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解析器的工作是通过改
变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、
线程恢复等基础功能都需要依赖这个计数器来完成。
由于 的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,也就是
任何时刻,一个处理器(或者说一个内核)都只会执行一条线程中的指令。因此为了线程
切换后能恢复到正确的执行位置,每个线程都有独立的程序计数器。
如果线程正在执行 中的方法,程序计数器记录的就是正在执行虚拟机字节码指令的
地址,如果是 方法,这个计数器就为空()),因此该内存区域是唯一一
个在  虚拟机规范中没有规定 **!+的区域。
② Java 虚拟机栈
虚拟机栈(%& )描述的是 方法执行的内存模型,每个方
法在执行的同时都会创建一个栈帧(%&,)用于存储局部变量表、操作数栈、动
态链接、方法出口等信息,每个方法从调用直至执行完成的过程,都对应着一个线帧在虚
拟机栈中入栈到出栈的过程。
 如果线程请求的栈深度大于虚拟机所允许的栈深度就会抛出 %&*)-
常。
 如果虚拟机是可以动态扩展的,如果扩展时无法申请到足够的内存就会抛出
**!+异常。
本地方法栈
本地方法栈(%&虚拟机栈的作用是一样的,只不过虚拟机栈是服务
 方法的,本地方法栈是为虚拟机调用 方法服务的。
虚拟机规范中对于本地方法栈没有特的要求,虚拟机可以由的实现它,因此
%'%(虚拟机直接把本地方法栈虚拟机栈合二为一了。
④ Java
堆('( )是 中内存大的一块,是所有线程共享的,在虚拟机动时
创建,堆唯一的的就是存,几所有的对都在这里分配内
存, . 译器的和逃逸分析技术逐渐,栈分配、优化技术
将会导致一些微的变,所有的对都分配在堆上渐渐对了。
如果在堆中没有内存完成实分配,并堆不可以再扩展时,将会抛出
**!+ 虚拟机规范规定,堆可以处在连续的内存空间
中,只要逻辑上连续即可,就像我们磁盘空间一样。在实现也可以是定大小的,也
可以是可扩展的,不过当前主流的虚拟机都是可扩展的,通过 /0 /0控制
方法区
方法区()用于存储已被虚拟机加载的类信息、常量、态变量、
后的代码等数据。
1 2把方法区永久代 (3 ),本质上两者并不等,只是
'%( 虚拟机垃圾回收团队3分代集扩展到了方法区,或者说是用来永久代来
实现方法区而已,这样能专门为方法区写内存管理的代码,但是在 4$移除
12永久代 ,使+来实现方法区。
当方法无法足内存分配需求时会抛出 **!+异常。
摘要:

JVM面试题汇总1.什么是JVM?它有什么作用?答:JVM是JavaVirtualMachine(Java虚拟机)的缩写,顾名思义它是一个虚拟计算机,也是Java程序能够实现跨平台的基础。它的作用是加载Java程序,把字节码翻译成机器码再交由CPU执行的一个虚拟计算器。2.JVM主要组成部分有哪些?答:JVM主要组成部分如下:•类加载器(ClassLoader)•运行时数据区(RuntimeDataArea)•执行引擎(ExecutionEngine)•本地库接口(NativeInterface)3.JVM是如何工作的?答:首先程序在执行之前先要把Java代码(.java)转换成字节码(.cl...

展开>> 收起<<
036--JVM面试题汇总.docx

共6页,预览2页

还剩页未读, 继续阅读

声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
分类:计算机 价格:5.9玖币 属性:6 页 大小:21.72KB 格式:DOCX 时间:2024-12-11

开通VIP享超值会员特权

  • 多端同步记录
  • 高速下载文档
  • 免费文档工具
  • 分享文档赚钱
  • 每日登录抽奖
  • 优质衍生服务
/ 6
客服
关注