一、为什么要使用包装类?
- 基本数据类型基于效率,但是不能很好的适用面向对象的开发,将基本数据类型包装成类的形式以此来适用面向对象的开发。
二、有哪些包装类
基本数据类型 | 包装类 |
---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
- 其中除了Character、Boolean外其余的包装类都继承父类Number
三、基本数据类型与包装类之间的转换
1.为什么需要转换?
- 在有些场景下,需要使用基本数据类型对应的包装类的对象。此时就需要将基本数据类型的变量转换为包装类的对象。比如 ArrayList的add(Object obj)等等
- 对于包装类来讲,对象是不能进行+ - * /等数学运算的。为了能够进行运算,就需要将包装类的对象转换为基本数据类型的变量。
2.基本数据类型转包装类(装箱)
@Test
public void test1(){
int num = 1;
Integer num1 = new Integer(num);
System.out.println(num1.toString());
}
@Test
public void test1(){
int num = 1;
Integer num1 = Integer.valueOf(num);
System.out.println(num1.toString());
}
3.包装类转换为基本数据类型(拆箱)
- 调用包装类的.XXXvalue()方法,返回一个对应的基本数据类型值
@Test
public void test2(){
Integer a =Integer.valueOf(2);
int i = a.intValue();
System.out.println(i + 1);
}
4.jdk5新特性:自动装箱、自动拆箱。
@Test
public void test3(){
int num = 1;
Integer num1 = num;
System.out.println(num1.toString());
}
@Test
public void test3(){
int num = 1;
Integer num1 = num;
int num2 = num1;
System.out.println(num2 + 2);
}
四、String与基本数据类型、包装类之间的转换
1.基本数据类型、包装类转String
@Test
public void test4(){
int num = 123;
String s = String.valueOf(num);
System.out.println(s);
}
@Test
public void test4(){
int num = 12;
String s = num + "";
System.out.println(s);
}
2.String转基本数据类型、包装类
@Test
public void test4(){
String a = "123";
int i = Integer.parseInt(a);
System.out.println(i + 1);
}