一、什么是包装类
包装类就是将基本数据类型进行包装形成的类。因为我们无法把八大基本数据类型当做对象来操作,而Java又是面向对象编程的,如果没有对象我们就无法操作数据,所以包装类就出现了
二、包装类有哪些
常见基本数据类型都有他们的包装类,如下表
基本数据类型 | 包装类 |
---|---|
int | Integer |
byte | Byte |
short | Short |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
下面将以Integer类举例
Integer
//将基本数据类型转换成包装类对象
int i = 10;
Integer integer1 = new Integer(i);
Integer integer2 = Integer.valueOf(i);
//包装类对象转换成基本数据类型
int val1=integer1.intValue();
double val2 =integer1.doubleValue();
//将String类转换成Integer,也可以自动转换成int,因为有自动装箱和自动拆箱的功能。。。
String str = "2";
Integer i1 = Integer.parseInt(str);//2
Integer i2 = new Integer(str);
//将包装类对象转成String。
String str1= i1.toString();//“2”
String str2 =""+i1;
- 注意:
当你加载包装类的时候,Integer类会自动生成[-128 ,127]的Integer类型的数组。当你要生成-128到127之间的Integer对象的时候,就从这个已经创建好的数组中调用。所以他们的地址是相等的,当你要创建这个范围之外的Integer对象时,才需要去新创建。下面是举例
Integer i1 = new Integer(127);
Integer i2 = new Integer(127);
System.out.println(i1 == i2);//false
System.out.println(i1.equals(i2));//true重写了equals方法,比较的内容
Integer i3 = new Integer(128);
Integer i4 = new Integer(128);
System.out.println(i3 == i4);//false
System.out.println(i3.equals(i4));//true
Integer i5 = 128;
Integer i6 = 128;
System.out.println(i5 == i6);//false
System.out.println(i5.equals(i6));//true
Integer i7 = 127;
Integer i8 = 127;
System.out.println(i7 == i8);//true
System.out.println(i7.equals(i8));//true