学习课程名称:Java体系课
章节名称:Java包装类
课程内容:
- 包装类与基本数据类型
- 包装类的常用方法
- 基本数据类型与包装类之间的转换
- 常见问题
学习收获:
- 基本数据类型没有属性、方法,无法对象化交互;
包装类可以让基本数据类型拥有属性、方法,可以对象化交互;让基本数据类型变为引用类型
基本类型 | 对应包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
装箱
把基本数据类型的值转化为包装类的对象
- 自动装箱
int t1 = 2;
Integer t2 = t1;
- 手动装箱
Integer t3 = new Integer (t1);//通过类的构造方法:
Integer t3 = Integer.valueOf (t1);//通过类的valueOf()方法
拆箱
把包装类的对象转化为基本数据类型
- 自动拆箱
int t4 = t2;
- 手动拆箱
int t5 = t2.intValue();
基本数据类型和字符串之间的转换
- 基本数据类型转换为字符串:
运用包装类的toString方法
int t1=2;
String t2=Integer.toString(t1);
- 字符串转换为基本数据类型:
int t3=Integer.parseInt(t2);//运用包装类的parse
int t4=Integer.valueOf(t2);//运用包装类的valueOf,先将字符串转换为包装类,再通过自动拆箱完成基本类型的转换
- 自动装箱在一定范围内是从缓存区取值不是从新创建对象
8种基本数据类的包装类,除了Float和Double,都有常量池概念,常量池范围[ -128,127]。
包装类的比较
- 拆箱后的数据是基本数据类型,用==判断相等性,比较的都是数值,如果是字符,比较的是ASCII值。
- 装箱后,用==比较对象的内存地址,除double和float外,数值在缓存区范围内,-128~127,相同,反之,重新生成对象,不同
- 调用equals时,类型和数值相同,返回true,反之返回false。当比较有一方为基本数据类型,先进行自动装箱操作,后比较。