最简单易懂的JVM(虚拟机)的结构

  最简单易懂的JVM(虚拟机)的结构

一、结构

1.类加载器: 虚拟机启动(或者类运行)的时候将Java源文件加载到虚拟机中。
2.执行引擎:类文件加载到虚拟机之后会变成字节码(程序执行的指令)
3.内存区:程序执行的时候所用的空间;(可理解为生产厂房)

内存区划分:
a.方法区:存放程序中类的结构信息、常量池、静态变 量、构造函数。(公用的不会变的东西都放在这里,相当于公司 的规章制度,不会变的,定好的东西,和公司的一些工具,大 家通用的。)
b.堆内存:供给大家存放java实例或者对象的地方。跟方法 区一样都是共享的。
c.栈内存:线程运行产生的区域,每个线程执行都需要创建 一个栈内存区。(每个线程可能会执行几个Java方法,没个方法又会去创建一个栈帧,栈帧又是用来存放方法的信息供方法使用的。栈帧和栈的关系是父子关系(栈是父,栈帧是子))
d.程序计数器:每个线程执行的时候都会生成一个计数器,用来记录该线程执行到什么地方了,执行的情况。比如说执行到某地方停了什么时候再继续执行,都是由程序计数器去管理的。程序计数器也属于线程的。
e. 本地方法栈(Native Method Stack):和java栈的作用差不多,只不过是为JVM使用到的native方法服务的。

4.本地方法接口:主要是调用C或C++实现的本地方法及返回结果。

以上内容纯属个人理解。参考:https://blog.csdn.net/moneyshi/article/details/53033577

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值