Java八大基本数据类与对应包装类
Java的八种基本数据类型
| 序号 | 数据类型 | 字节数 | 默认值 | 取值范围 | 示例 | 
|---|---|---|---|---|---|
| 1 | byte (位) | 1 | 0 | -2^7 ~ 2^7-1 | byte b = 10; | 
| 2 | short (短整数) | 2 | 0 | -2^15 ~ 2^15-1 | short s = 10; | 
| 3 | int (整数) | 4 | 0 | -2^31 ~ 2^31-1 | int i = 10; | 
| 4 | long (长整数) | 8 | 0 | -2^63 ~ 2^63-1 | long l = 10l; | 
| 5 | float (单精度) | 4 | 0.0 | -2^31 ~ 2^31-1 | float f = 10.0f; | 
| 6 | double (双精度) | 8 | 0.0 | -2^63 ~ 2^63-1 | double d = 10.0d; | 
| 7 | char (字符) | 2 | 空 | 0 ~ 2^16-1 | char c = 'c'; | 
| 8 | boolean (布尔值) | 1 | false | true、false | boolean b = true; | 
Java决定了每种基本数据类型的取值范围以及每个基本数据类型变量的大小,并不会随着机器结构的变化而变化,使得Java程序具有很强移植能力。
基本数据类型及其封装类
| 基本数据类型 | 封装类型 | 
|---|---|
| byte | Byte | 
| short | Short | 
| int | Integer | 
| long | Long | 
| float | Float | 
| double | Double | 
| char | Character | 
| boolean | Boolean | 
自动装箱与自动插箱
自动装箱:将基本类型用它们对应的引用类型包装起来,本质上是调用方法生成包含对应变量值的对象
自动拆箱:将包装类型转化为基本数据类型,本质上是调用对象的方法,返回一个基本数据类型值,赋给指定变量
如下代码:
Integer i = 100; // 实际上是Integer.valueOf(100)
int n = i; // 实际上是 i.intValue()
如上代码所示,在装箱的时候自动调用的是Integer的valueOf(int)方法;而在拆箱的时候自动调用的是Integer(对象)的intValue()方法