如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
基本类型包装类(引用类型,包装类都位于java.Lang包下):
- byte Byte
- short Short
- int Integer【特殊】
- long Long
- float FLoat
- double Double
- char Character【特殊】
- booLean Boolean
包装类:
基本数据类型的数据,使用起来非常的方便,但是没有对应的方法来操作这些数据,所以我们可以使用一个类把基本类型的数据包装起来,这个类叫包装类,在包装类中可以定义一些方法用来操作基本类型的数据。
1.构造方法:
Integer(int value)构造一个新分配的Integer对象,它表示指定的int值。
Integer(String s)构造一个新分配的Integer对象,它表示string参数所指示的 int值。
传递的字符串,必须是基本类型的字符串,否则会抛出异常 “100”正确“a”抛异常
2.静态方法:
装箱:
static Integer **value0f(int i)**返回一个表示指定的int值的Integer 实例。
static Integer **value0f (String s)**返回保存指定的 string 的值的Integer对象。
拆箱:
在包装类中取出基本类型的数据(包装类-→>基本类型的数据)
成员方法: **int intvalue()**以int类型返回该Integer的值。
3.自动装箱与自动拆箱
拆装箱的概念:将基本数据类型转为包装类的过程叫“装箱”,将包装类转为基本数据类型的过程叫“拆箱”
装箱 基本数据类型->包装类对象:
Integer i=new Integer(4);//构造函数
Integer integer = i.valueOf(4);
拆箱 包装类对象->基本数据类型:
int i1 = i.intValue();
//装箱 基本数据类型->包装类对象
Integer i=new Integer(4);//构造函数
Integer integer = i.valueOf(4);//使用包装类的valueOf方法
//拆箱 包装类对象->基本数据类型
int i1 = i.intValue();
4
4
4
自动拆装箱:Java为了简便拆箱与装箱的操作,提供了自动拆装箱的功能,对于Integer, 拆箱的过程就是通过Integer 实体调用intValue()方法;
Integer in=1 相当于Integer i=new Integer(4);
装箱的过程就是调用了 Integer.valueOf(int i) 方法,帮你直接new了一个Integer对象
由于我们经常要做基本类型与包装类之间的转换,从Java 5 ( JDK 1.5)开始,
基本类型与包装类的装箱、拆箱动作可以自动完成。
4.为什么需要包装类:
JAVA是面向对象的语言,很多类和方法中的参数都需使用对象(例如集合),但基本数据类型却不是面向对象的,这就造成了很多不便
建议使用valueOf() 方法创建一个包装类实例而不是直接使用构造方法,因
为该方法可以走缓存提高性能