可能需要知道的一点:
java内存分为四块
1.装代码,就是编译的东西
2.装静态变量,如static关键字的变量
3.stack即“栈”,用来装变量和引用类型
4.heap即“堆”,用来装new出的东西
正文
数据类型分为基本数据类型和引用数据类型
1.概念方面来说
基本数据类型:变量名指向具体数值
引用数据类型:变量名指向存数据对象的内存地址
2.内存构建方面来说
基本数据类型:变量声明以后java会立即给他分配内存空间
引用数据类型:通过地址指向堆中对象实体(具体的值),这类变量声明时堆不会分配内存空间,只是存储了一个内存地址
3.使用方面来说
基本数据类型:使用时要赋具体的值,判断是要用“==”
引用数据类型:使用时甚至可以赋值null,判断用equals方法
(1)基本数据类型又分为8种:int,short,long,byte,float,double,char,boolean
(部分表格来源https://blog.csdn.net/zhe_ge_sha_shou/article/details/79433884)
需要知道的是:
1字 = 2字节(1 word = 2 byte)
1字节 = 8位(1 byte = 8 bit)
类型 | 占用字节(byte) | 大小(bit) | MIN_VALUE | MAX_VALUE |
---|---|---|---|---|
byte | 1 | 8 | -128 | 127 |
short | 2 | 16 | -32768 | 32767 |
int | 4 | 32 | -2147483648 | 2147483647 |
long | 8 | 64 | -9223372036854775808 | 9223372036854775807 |
float | 4 | 32 | 1.4E-45 | 3.4028235E38 |
double | 8 | 64 | 4.9E-324 | 1.7976931348623157E308 |
char | 2 | 16 | 0 | 65535 |
boolean | 1 or 4 | 1 |
需要注意的是: 在基本数据类型中,除了boolean类型所占长度与平台有关外,其他数据类型长度都是与平台无关的。比如,int永远占4个字节(1 Byte = 8 bit)
(2)引用数据类型
可以说除了基本数据类型,都是引用数据类型。如类(接口),数组