JVM 详解

Posted helloqiufei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM 详解相关的知识,希望对你有一定的参考价值。

                                                                 ----------- 你的时间不多了,抓紧做你想做的

引言: 
   JVM 其实没有那么神秘, 其实就是运行在操作系统上,帮助我们运行程序的一个程序

一、规范

根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示

                               技术图片

 个人理解:规范只是一个约束,但是在具体的不同的java 虚拟机实现厂商细节是不一样的 , 目前我们接触到大多都是sun公司的hotSpot 虚拟机,

                  HotSpot 对于内存区域的具体划分没有像上面划分的这么细,它主要就划分成两个部分,一个是堆一个是栈。

 

 

知识点: 

宏观来看:

              方法区 + 堆: 用于存放数据的

             虚拟机栈 +  本地方法栈  + 程序计数器 : 用于存放执行的逻辑的

 

微观来看

            方法区: 用于存放类的元数据(元数据: 简单名字 + 描述信息, 例: spring.io.file + public + static, 这些描述这个类的信息的东西)

            堆: 用于存放类的实例数据

 

 

字符串常量池存放在方法区中‘’‘’

局部变量表存放在栈里面

 

以上是关于JVM 详解的主要内容,如果未能解决你的问题,请参考以下文章

详解Jvm内存结构

java 简单的代码片段,展示如何将javaagent附加到运行JVM进程

从JVM的角度看JAVA代码--代码优化

深度详解JVM类字节码

Java 虚拟机内存区域划分详解

(转) Java中的负数及基本类型的转型详解