Java 基本类型、引用类型在内存中的存储原理

首先说一句,不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存:

  • 对于基本类型来说,栈区域包含的是基本类型的内容,也就是值;
  • 对于引用类型来说,栈区域包含的是指向真正内容的指针,真正的内容被分配在了堆中。

存储原理

基本数据类型不存在“引用”的概念,他们直接存储在内存中的内存栈上的,数据本身的值也是存储在栈空间里面;

引用类型继承于 Object 类,Object 类都是按照 Java 里面存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储。简单地讲,“引用”(存储对象在内存堆上的地址)是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;

当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)都是放在方法栈中;

当声明的是引用变量时,所声明的变量的“引用”(存储对象在内存堆上的地址)是存储在有序的内存栈上的,而“引用”指向的对象本身的值存储在内存堆上。

 

更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java Punk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值