JVM基础:深入学习JVM堆与JVM栈( 二 )

Java虚拟机中 , 数据类型可以分为两类:基本类型和引用类型 。 基本类型的变量保存原始值 , 即:他代表的值就是数值本身;而引用类型的变量保存引用值 。 “引用值”代表了某个对象的引用 , 而不是对象本身 , 对象本身存放在这个引用值所表示的地址的位置 。

基本类型包括:byteshortintlongcharfloatdoubleBooleanreturnAddress

引用类型包括:类类型 , 接口类型和数组 。

JVM堆与JVM栈

JVM堆和JVM栈是程序运行的关键 , 很有必要把他们的关系说清楚 。


JVM栈是运行时的单位 , 而JVM堆是存储的单位 。

JVM栈解决程序的运行问题 , 即程序如何执行 , 或者说如何处理数据;JVM堆解决的是数据存储的问题 , 即数据怎么放、放在哪儿 。

在Java中一个线程就会相应有一个线程JVM栈与之对应 , 这点很容易理解 , 因为不同的线程执行逻辑有所不同 , 因此需要一个独立的线程JVM栈 。 而 JVM堆则是所有线程共享的 。 JVM栈因为是运行单位 , 因此里面存储的信息都是跟当前线程(或程序)相关信息的 。 包括局部变量、程序运行状态、方法返回值 等等;而JVM堆只负责存储对象信息 。

推荐阅读