JVM面试题总结

什么是JVM?

  1. JVM 指的是Java虚拟机,本质上是一个运行在计算机上的程序,他的职 责是运行Java字节码文件,作用是为了支持跨平台特性。
  2. JVM的功能有三项:第一是解释执行字节码指令;第二是管理内存中对象的 分配,完成自动的垃圾回收;第三是优化热点代码提升执行效率。
  3. JVM组成分为类加载子系统、运行时数据区、执行引擎、本地接口这四部分 。

4、常用的JVM是Oracle提供的Hotspot虚拟机,也可以选择GraalVM、龙井、 OpenJ9等虚拟机

什么是运行时数据区?

运行时数据区指的是JVM所管理的内存区域,其中分成两大类:

线程共享 – 方法区、堆

方法区:存放每一个加载的类的元信息、运行时常量池、字符串常量池。

堆:存放创建出来的对象。

线程不共享 – 本地方法栈、虚拟机栈、程序计数器

本地方法栈和虚拟机栈都存放了线程中执行方法时需要使用的基础数据。

程序计数器存放了当前线程执行的字节码指令在内存中的地址。

字节码文件的组成

  1. 基本信息

魔数、字节码文件对应的Java版本号 访问标识(public final等等) 父类和接口

  1. 常量池

保存了字符串常量、类或接口名、字段名 主要在字节码指令中使用

  1. 字段

当前类或接口声明的字段信息

  1. 方法

当前类或接口声明的方法信息 字节码指令

  1. 属性

类的属性,比如源码的文件名 内部类的列表等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值