java虚拟机之内存区域

文章内容参考<<深入理解java虚拟机>>,内容是自己总结的观点,如果有疑问,请参展<<深入理解java虚拟机>>

1.java虚拟机内存区域

1.运行时内存数据区域



运行时数据区域图.

1.程序技术器Program Counter Register:(线程私有)

    特点:空间小,当前线程所执行的字节码的行号指示器.

    解释:虚拟机线程在执行时,需要根据线程计数器的值来选择如何执行下一条指令,例如:分支,循环,异常等

    拓展1:每一个处理器内核都只会执行一条线程,每一个线程都会创建一个程序计数器

    深入:当虚拟机执行的是java方法,程序计数器记录的是正在执行的字节码指令的地址,如果是native方法,则执行的是null.

    拓展2:native方法是java虚拟机调用非java语言的接口,native是关键字 ,被native修饰的方法不用写方法体,因为在外部已经调用其他语言的代码.

              native关键字不能与abstract关键字共用,因为native是有方法体的.

2. 虚拟机栈java Virtual Machine Stacks:(线程私有)

    特点:先进先出.

    解释:用于存放对象引用,以及基本数据类型.

3.本地方法栈Native Method Stack:(线程私有)

    特点:虚拟机并没有对他进行规范,所以可以自由实现.

    解释:用户存储Native方法


未完待续...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容