一、基本数据类型:8种
整数类型:int(4字节)、long(8)、short(2)、byte(1)浮点类型:double(8)、float(4)字符类型:char(2)布尔型:boolean
二、引用类型:
String类型、封装类、接口、类、枚举、注解类型、数组类型
三、包装类
| 基本数据类型 | 包装类 |
| ------------ | --------- |
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| char | Character |
1、性能方面:
1.1、装箱:基本数据类型->包装类型;
1.2、拆箱:包装类->基本数据类型;
1.3、装箱和拆箱向堆中申请空间,频繁的创建会导致导致堆空间碎片很多;相比而言,基本类型的运算则高效很多
long start = System.currentTimeMillis();
Long sum = 0L; // 使用包装类相加
for (long i = 0; i < Integer.MAX_VALUE; i++) {sum += i;
}
System.out.println(sum);
long end = System.currentTimeMillis();
System.out.println("耗时:"+(end-start)/1000.0);
// 输出:
// 2305843005992468481
// 耗时:15.175
start = System.currentTimeMillis();
long sum = 0L;
for (long i = 0; i < Integer.MAX_VALUE; i++) {sum += i; // 使用基本数据类型相加
}
System.out.println(sum);
long end = System.currentTimeMillis();
System.out.println("耗时:"+(end-start)/1000.0);
// 输出:
// 2305843005992468481
// 耗时:1.643
两者代码的区别仅仅在于前者的sum为包装类Long,后者的sum为基本类型long