1.初始化默认值不一样
基本类型 | 初始化 | 包类型 | 初始化 |
int | 0 | Integer | null |
float | 0.0F | Float | null |
double | 0.0 | Double | null |
char | '\u0000' | Character | null |
short | 0 | Short | null |
long | 0L | Long | null |
byte | 0 | Byte | null |
boolean | false | Boolean | null |
例如:
int[] nums=new int[5];
等价于
int[] nums={0,0,0,0,0};
Integer[] nums=new Integer[5];
等价于
Integer[] nums={null,null,null,null,null};
2.基本类型的值存在栈中,包类型存的是对象的引用地址,该地址指向堆内存。
3.基本类型会进行自动类型转换,而包类型不会,可以参考我的另一篇文章