包装类
概述
将基本数据类型封装成对象类型的类,就叫包装类
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
总结:
- int对应的是Integer,
- char对应的Character,
- 其他6个都是基本类型首字母大写即可。
为什么要用包装类
- AVA是面向对象的语言,很多类和方法中的参数都需使用对象(例如集合),但基本数据类型却不是面向对象的,这就造成了很多不便
- 包装类具备对象的性质,包括可以添加属性和方法
- 好处在于可以提供更多的操作基本数值的功能
用于在基本数据和字符串之间进行转换
示例
int与String相互转换
int-->String
int i = 10;
String s = i + " ";
System.out.println("第一种方式" + s);
System.out.println("第二种方式" + String.valueOf(i));
System.out.println("第三种方式" + Integer.toString(i));
String-->int
int i = Integer.parseInt(s);
String-->Integer-->int
Integer i =Integer.valueOf(s);
int d= i.intValue();
装箱和拆箱
装箱:将基本数据类型转换为包装类
拆箱:将包装类转换为基本数据类型
//装箱
Integer p=Integer.valueOf(100);
//拆箱
p=p.intValue()+100;
- 装箱的过程调用了 Integer.valueOf(int i) 方法,帮你直接new了一个Integer对象
- 拆箱的过程通过Integer 实体调用**intValue()**方法
什么时候进行自动拆装箱?
自动拆箱与自动装箱
在JDK1.5以前,需要手动装箱和拆箱
在JDK1.5及以后,支持自动装箱和拆箱
Integer i = 100; //自动装箱
i +=200; //i = i + 100; 是自动装箱; i+200 自动拆箱
应用
-
需要对象的时候就装箱
-
需要基本类型的时候就拆箱
-
添加到集合中时,进行自动装箱
-
涉及到运算的时候,“加,减,乘, 除” 以及 “比较 equals,compareTo”,进行自动拆箱
注意
- 在使用包装类类型的时候,如果做操作,最好先判断是否为null