JVM的内存区域划分

一、运行时数据区包含哪几部分

堆内存

       使用NEW关键字创建的对象,都保存在堆内存中。这块内存不需要我们关心,会由垃圾回收器进行控制。

       堆内存被所有线程共享,并且在JVM中只有一个。

       另外,数组也存放在堆内存中。

Java栈

        用于保存方法的临时变量,对象引用。

方法区

        用于存储已被虚拟机加载的类信息、常量、静态变量等数据。

        在方法区中有一个非常重要的部分就是常量池,比如字符串常量池。

本地方法栈

       本地方法栈则是为虚拟机使用到的Native方法服务。而JAVA的栈内存是为了保存我们编写的临时变量与对象引用。

程序计数器

        JAVA其实说到底也就是一条一条的指令。程序计数器个人理解也就是用来指示执行哪条指令的。每个线程都需要有自己独立的程序计数器,并且不能互相被干扰,否则就会影响到程序的正常执行次序。因此,可以这么说,程序计数器是每个线程所私有的。

 

参考文章地址:海子http://www.cnblogs.com/dolphin0520/

                         纯洁的微笑,jvm系列(二):JVM内存结构

posted @ 2022-07-17 12:14  小大宇  阅读(36)  评论(0编辑  收藏  举报