JVM内存模型

JVM是JAVA语言可以在多环境下运行的根本,探究JVM机制能让我们更深入的了解这门语言是如何运行的

JVM内存模型总览

jvm内存模型
之后给大家介绍各个部分的大概作用

类加载器(Classloader)

作用:将Class文件加载进JVM内存中
详细可看JAVA类加载机制

栈(JVM Stack)

作用:栈是用来程序运行的方法的容器,一个线程有一个栈,每一个方法对应一个栈帧,栈帧中存放着这个方法运行时的各类数据。
详细可看JAVA栈与栈帧

程序计数器(The pc Register)

程序计数器中存放着程序的运行位置,是服务于多线程的,作用类似于断点记录。其计数修改由字节码执行引擎负责。每个线程都会被分配一个。

堆(Heap)

作用:存放new出来的对象,其他地方存的都是对象在堆内的地址
详细可看堆与CG

方法区(Method Area)

JDK1.8前叫持久栈,1.8后叫元空间,里面存的是常量、静态变量和类信息等

本地方法栈(Native Method Stacks)

本地方法栈与虚拟机栈作用非常相似,其区别只是虚拟机栈为虚拟机执行Java方法(也就是字节码)服务,而本地方法栈则是为虚拟机使用到的本地(Native) 方法服务,即非java方法一般是使用C语言进行实现。
之所以调用本地方法,是因为java代码有一定的限制,java有时候不能和操作系统底层交互,所以就需要使用C或者C++ 等一些别的语言和操作系统进行交互,然后由java代码调用这些封装好的本地方法接口间接和操作系统进行交互。

以上是笔者结合自己的理解所写,如有错误欢迎指出,望共同进步,peace~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值