简单一篇,JVM体系结构

JVM

学习 Java 肯定会听说过 JVM,从字面上看,JVM 指的是 Java Virtual Machine(Java虚拟机),在作者之前几次面试经历中,经常会被问到什么是 JVM 和 JVM 调优的问题。也正是因为有了 JVM 的存在,才使得 Java 语言拥有跨平台的特性。

我认为,JVM 不能用Java虚拟机潦草概括,JVM 是一种Java虚拟机规范,而众多大厂家通过实现此规范研发出不同版本的 JVM。例如,sun公司的 HotSpot VM,BEA公司的JRockit,IBM公司的J9 JVM 等等。


下图是 JVM 与操作系统和硬件体系结构图,可以很清晰的看出,JVM 是运行在操作系统之上的,它与硬件没有直接交互。


JVM 内存模型


JVM 的内存模型由以下几大重要部分组成,其中的运行时数据区就是平时抛出RuntimeException的地方:

  1. 类加载器:将 Java 中 .class 的字节码文件加载到 JVM 的内存区域中。
  2. 方法区:属于线程共享区域,存储已被类加载器加载的类信息、常量、静态变量等数据。
  3. 堆:属于线程共享区域,主要是存放对象实例和数组,所有被 new 出来的对象都存放在堆中。
  4. 虚拟机栈:属于线程隔离区域,方法执行的内存模型,方法从调用直至执行结束,对应着一个栈帧从虚拟机栈中入栈到出栈的过程。
  5. 本地方法栈:属于线程隔离区域,为虚拟机使用到的 Native 方法服务。
  6. 程序计数器:属于线程隔离区域,字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成。
  7. GC(垃圾回收器):Java 垃圾自动回收的核心,会自动检测并销毁程序中超过生命周期的对象。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值