数据类型分类
- 基本数据类型
- 引用类型
基本数据类型
- 整数型
- byte: - 8 位。 1字节
- short - 16 位。 2字节
- int - 32 位。 4字节 范围: -2 ^ 31 ~ 2 ^ 31 -1
- long - 64 位,赋值时一般在数字后加上 l 或 L。 8字节
- 浮点型
- float - 32 位,直接赋值时必须在数字后加上 f 或 F。 4字节
- double - 64 位,赋值时一般在数字后加 d 或 D 。 8字节
- 字符型
- char - 16 位,存储 Unicode 码,用单引号赋值。 2字节
- 布尔型
- boolean - 只有 true 和 false 两个取值。 1字节
基本数据类型和引用类型的区别
- 从概念方面来说
- 基本类型:变量名指向具体的数值。
- 引用类型:变量名指向存数据对象的内存地址。
- 从内存方面来说
- 基本类型:变量在声明之后,Java 就会立刻分配给他内存空间。
- 引用类型:它以特殊的方式(类似 C 指针)向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。
- 从使用方面来说
- 基本类型:使用时需要赋具体值,判断时使用 == 号。
- 引用类型:使用时可以赋 null,判断时使用 equals 方法。
装箱和拆箱
包装类、装箱、拆箱
Java 中为每一种基本数据类型提供了相应的包装类,如下:
Byte <-> byte
Short <-> short
Integer <-> int
Long <-> long
Float <-> float
Double <-> double
Character <-> char
Boolean <-> boolean
引入包装类的目的就是:提供一种机制,使得基本数据类型可以与引用类型互相转换。
自动装箱、自动拆箱
基本数据(Primitive)型的自动装箱(boxing)拆箱(unboxing)自 JDK 5 开始提供的功能。
JDK 5 之前的形式:
// 非自动装箱
Integer i1 = new Integer(5);
JDK 5 之后:
// 自动装箱
Integer i2 = 5;
–须知少时凌云志, 曾许人间第一流。