首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【答疑解惑】Java中基本数据在内存中是如何存储的

【答疑解惑】Java中基本数据在内存中是如何存储的

作者头像
程序员互动联盟
发布2018-03-14 11:59:09
1.1K0
发布2018-03-14 11:59:09
举报
Java的基本数据类型共有8种,即int, short, long, byte, float, double, boolean, char(注意,并没有string的基本类型)。

这种类型的定义是通过诸如:

int a = 5; long b = 255L;的形式来定义的。

如int a = 5;这里的a是一个指向int类型的引用,是一个局部变量,指向5这个字面值。这些字面值的数据,由于大小可知,使用范围可知,出于追求速度的原因,就存在于栈中。

另外,栈有一个很重要的特殊性,就是存在栈中的数据可以共享。比如:我们同时定义: int a=5; int b =5; 编译器先处理int a = 5;首先它会在栈中创建一个变量为a的引用,然后查找有没有字面值为5的地址,没找到,就开辟一个存放5这个字面值的地址,然后将a指向5的地址。接着处理int b = 5;在创建完b这个引用变量后,由于在栈中已经有5这个字面值,便将b直接指向5的地址。这样,就出现了a与b同时均指向5的情况。

定义完a与b的值后,再令a = 6;那么,b是等于6,还是等于5。在编译器内部,遇到时,它就会重新搜索栈中是否有6的字面值,如果没有,重新开辟地址存放6的值;如果已经有了,则直接将a指向这个地址,因此a值的改变不会影响到b的值。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档