本文共 1144 字,大约阅读时间需要 3 分钟。
数据类型 | 字节大小 | 默认值 | 包装类 | 范围 |
---|---|---|---|---|
byte | 1 | 0 | Byte | -2^7 ~ 2^7-1 |
short | 2 | 0 | Short | -2^15 ~ 2^15-1 |
int | 4 | 0 | Integer | -2^31 ~ 2^31-1 |
long | 8 | 0 | Long | -2^63 ~ 2^63-1 |
float | 4 | 0.0 | Float | 32位符合IEEE 754标准的浮点数 |
double | 8 | 0.0 | Double | 64位符合IEEE 754标准的浮点数 |
char | 2 | 空格 | Character | 一个单一的16 位 Unicode 字符 |
boolean | 1或4 | false | Boolean | true或false |
那问题来了什么时候自动装箱什么时候自动拆箱?
下面会选取int类型来讲解: 下面的代码就是使用int类型触发自动装箱和拆箱的操作。int number = 1; Integer numberInt = Integer.valueOf("1"); // numberInt自动拆箱 boolean iss = number == numberInt; // number自动装箱 boolean isss = numberInt.equals(number); // number自动装箱 Object object = number; // numberInt自动拆箱 numberInt++; boolean issss = numberInt == 2; // number自动装箱 Integer numberInts = number; // numberInts自动拆箱 int numbers = numberInts;
反编译后
###可以总结出来这么几点:#####1、当一个封装类型使用等于去比较一个基本类型的时候,封装类型会自动拆箱去比较#####2、当封装类型数据进行算法运算时,会自动拆箱去运算#####3、当用Object类型去接受基本数据类型的时候,这个数据会进行装箱操作#####4、基本数据类型数据赋值给封装类型就会触发装箱操作#####5、封装类型数据赋值给基本数据类型的时候就会触发拆箱操作#####6、装箱调用的是valueOf方法,拆箱调用的是(基本类型名称+Value)方法,例如:Integer调用intValue,Long调用longValue
文章同时会更新到公众号,觉得对你有帮助或者有用的可以关注一下哦
转载地址:http://jgfnn.baihongyu.com/