JVM的堆内存和栈内存中存储的数值或类型的区别在哪里

Posted ppp1314520818

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM的堆内存和栈内存中存储的数值或类型的区别在哪里相关的知识,希望对你有一定的参考价值。

基本类型变量的值和内容是一致的
引用类型变量的值在堆内存,赋值的内容是一个地址,这个地址也在栈内存,指向堆内存
引用类型变量的值是内存地址,内存地址在栈内存,指向堆;内容是实例,在堆内存

引用类型变量时,栈内存存储的是指向堆的内存地址,真正数据在堆内存中,栈内存中存的是指向堆的地址,占用8个字节

类里面方法外的是成员方法跟属性(property),如果属性没有static修饰就是在堆,有即为静态属性(类属性)就不在,即在永久区,所有对象公用一份;
eg:int i = 4,这个4 在栈内存 ,i是一个符号,理解成不占内存就好了。

成员方法内的基本数据类型的变量的值和内容,只会出现在栈内存中(成员方法内不会有静态的变量)

以上是关于JVM的堆内存和栈内存中存储的数值或类型的区别在哪里的主要内容,如果未能解决你的问题,请参考以下文章

值类型和引用类型的区别 I 数据结构中的堆和栈和内存中的堆和栈的区别

JVM的内存中的堆和栈有啥区别呢?

java中的堆和栈的概念和区别

JVM的内存结构里的那个堆和栈,和数据结构里的堆和栈是一个东西吗?

JVM堆和栈的区别

JVM 堆和栈的区别