一、包装类
1.什么是包装类
每个基本数据类型都有其对应的包装类(boolean没有)
Byte
Character
Short
Integer
Long
Float
Double
2、为什么需要包装类
包装类其实就是基本数据类型经过封装后的类。
包装类提供了很多方法,方便我们调用。
在后面学到的泛型里,只支持对象,而基本数据类型没有对象,因此我们需要包装类。
一提到包装类,就自然而然的想到了装箱与拆箱。自动装箱和自动拆箱都是jdk5以后实现的,现在我们使用基本都是使用自动装箱和拆箱。
可以发现,包装类中有很多方法都是被static修饰的,可以通过类名直去调用,同时也提供了一些常量。
3、自动装箱
基本数据类型–>引用类型
Integer i = 100; //自动装箱
有自动装箱就有一个概念叫做手动装箱
int i = 10; //手动装箱
Integer integer = Integer.valueOf(i);
4、自动拆箱
Integer integer = 10; //自动装箱
int i = integer; //自动拆箱
手动拆箱
Integer integer = 10;
int i = integer.intValue(); //手动拆箱
5、包装类与封装的渊源
可以发现拆箱和装箱的方法其实和封装的get方法和set方法很相似。
而整形的数据量是有限的,
最大值是127,最小值是-128,这些常量都定义在了缓存里,会从缓存里取。
Integer i1 = 30;
Integer i2 = 30;
这里的i1和i2指向同一个对象,因为他们本质都是cache里的30。
6、常见应用
- 数值型装字符串型
这个很常用
String s = Integer.toString(10); //数值转字符
int i = Integer.parseInt(s); //字符转数字
- 进制转换
public static String toBinaryString(int i) {
return toUnsignedString0(i, 1);
}