一、包装类
Java是一个面向对象的编程语言,但是其中的基本数据类型不是对象,在集合的运算中很不方便,所以我们要将基本数据类型转变为对象进行操作运算,这就是包装类。
基本数据类型有8种,包装类也有8种。
除了Character和Boolean直接继承于Object类外,这6个都继承于Number类,Number类再继承于Object类。
二、基本数据类型、包装类、String类间的互相转化
装箱操作:
//基本数据类型 --> 包装类:调用包装类的构造器
@Test
public void test1() {
int num1 = 10;
Integer in1 = new Integer(num1);
System.out.println(in1.toString());
}
拆箱操作:
//包装类 --> 基本数据类型:调用包装类的xxxValue()
@Test
public void test2() {
Integer in1 = new Integer(12);
int i1 = in1.intValue();
System.out.println(i1 + 1);
}
JDK 5.0新特性:为了减少程序员的工作量,提供了自动装箱拆箱的功能。
/*
* JDK 5.0新特性:自动装箱和自动拆箱
*/
@Test
public void test3(){
//自动装箱:基本数据类型 --> 包装类
int num = 10;
Integer in1 =num;//自动装箱
boolean b1 = true;
Boolean b2 = b1;//自动装箱
//自动拆箱:包装类 --> 基本数据类型
System.out.println(in1.toString());
int num1 = in1;//自动拆箱
}
//基本数据类型、包装类 --> String类型:调用String重载的valueOf(Xxx xxx)
@Test
public void test4(){
int num1 = 10;
//方法一:
String str1 = num1 + "";
//方法二:
float f1 = 12.3f;
String str2 = String.valueOf(f1);
}
//String类型 --> 基本数据类型、包装类:调用包装类的parseXxx()
@Test
public void test5(){
String str1 = "123";
//错误的情况:
// int num1 = (int)str1;
// Integer in1 = (Integer)str1;
//可能会报NumberFormatException异常
int n1 = Integer.parseInt(str1);
System.out.println(n1 + 1);
}