数据类型
Java要确定每种基本数据类型所占存储空间的大小。他们的大小并不像其他大多数语言那样随机器硬件架构的变化而变化。
基本数据类型
基本类型 | 字节大小(bit) | 默认值 | 封装类 | 取值范围 |
---|---|---|---|---|
byte | 1 | (byte)0 | Byte | − 2 7 ~ 2 7 − 1 -2^7 ~ 2^7-1 −27~27−1 |
short | 2 | (short)0 | Short | − 2 15 ~ 2 15 − 1 -2^{15} ~ 2^{15}-1 −215~215−1 |
int | 4 | 0 | Integer | − 2 31 ~ 2 31 − 1 -2^{31} ~ 2^{31}-1 −231~231−1 |
long | 8 | 0L | Long | − 2 63 ~ 2 63 − 1 -2^{63} ~ 2^{63}-1 −263~263−1 |
float | 4 | 0.0f | Float | − 3.043 E 38 ~ 3.043 E 38 -3.043E38 ~ 3.043E38 −3.043E38~3.043E38 |
double | 8 | 0.00d | Double | − 1.798 E 308 ~ 1.798 E 308 -1.798E308 ~ 1.798E308 −1.798E308~1.798E308 |
boolean | - | false | Boolean | t r u e / f a l s e true / false true/false |
char | 2 | \u0000(null) | Character | 单个字符 |
所有数值类型都有正负号,所以不要去寻找无符号的数值类型。
boolean类型所占存储空间的大小没有明确指定,仅定义为能够取字面值true或者false
基本类型具有包装器类,是的可以在堆中创建一个非基本对象,用来表示对应的基本类型。
基本数据类型和引用数据类型的区别
- 在内存中的存储
- 基本数据类型的存储原理:基本数据类型不存在“引用”的概念,是直接存储在内存中的内存栈上的,数据本身就是存储在栈空间里面。
- 引用数据类型的存储原理:引用类型继承于Object类(也是引用类型)是按照Java中存储对象的内存模型来进行数据存储的,使用Java内存堆和内存栈来进行这种类型的数据存储,简单地讲,“引用”是存储在有序的内存栈上的,而对象本身的值存储在内存堆上的;
局部变量(方法中声明的变量)
局部变量既可以是基本数据类型的变量,也可以是引用数据类型的变量。
当声明是基本数据类型的变量时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈内存中
当声明的是引用数据类型的变量时,所声明的变量(该变量实际上是在方法中存储的是内存地址值)是放在JAVA虚拟机的栈内存中,该变量所指向的对象是放在堆内存中的。
全局变量(类中声明的变量,又称 成员变量)
全局变量既可以是基本数据类型的变量 也可以是引用数据类型的变量。
当声明是基本数据类型的变量时,其变量名及其值放在堆内存中的
当声明的是引用数据类型的变量时,其声明的变量仍然会存储一个内存地址值,该内存地址值指向所引用的对象。引用变量名和对应的对象仍然存储在相应的堆内存中
- 传递方式
- 基本数据类型:调用方法时作为参数是按数值传递的
- 引用数据类型:调用方法时作为参数是按引用传递的
三连博主,每天给您分享编程小知识!!!