Java千百问_06数据结构(023)_基本数据类型在内存中如何存放

来源:互联网 发布:网络英语培训机构排名 编辑:程序博客网 时间:2024/05/16 10:08

点击进入_更多_Java千百问

1、基本数据类型在内存中如何存放

了解基本数据类型看这里:java有哪8种基本数据类型
对于java中的8种基本数据类型,可以通过如下方式赋值给变量赋值。

int a = 3;float b = 4.0f;a = a + 2;

8中基本数据是将具体值直接存放在中,在发生变更时,将具体值替换为新的值。具体如下:

了解java如何管理内存看这里:jvm是如何管理内存的
了解java堆和栈的区别看这里:java堆和栈有什么区别

这里写图片描述

对于基本数据类型,并没有基本数据池的概念,每次赋值并不会在栈中进行任何查询,而是直接存储值。

但是,对于基本数据类型的包装器,在一定数值范围内是存放在运行时常量池中的。

了解基本类型包装器看这里:什么是基本类型包装器
了解运行时常量池看这里:运行时常量池是什么

顺便提一句,对于基本数据类型,在内存中都是以二进制储存(当然,内存是以8位二进制作为一个存储单元,也就是一个字节),不同的类型所占用的内存空间(体现为存储单元)也不同。在java中,数值类型都是有符号存储(二进制首位为符号位),浮点类型也是遵循IEEE754、854标准

了解二进制表示整型看这里:[用二进制如何表示整型数值][7]
了解二进制表示浮点型看这里:[用二进制如何表示浮点型数值][8]

对于一些不靠谱的资料或博客会混淆这个概念,认为基本数据类型在存储时首先回去看看栈中是否有该值,如果没有则放入,如果有则指向。这种说法纯属瞎扯,一个简单的道理,如果我分配了2G的栈内存,是否每次简单的int a = 1的赋值时,难道都会去排查一下这2g的空间?java没有这些人想象的这么无聊。

1 0