1、为什么是八种:
包装类对应基本数据类型,因为基本数据类型有八种,所以包装类也有八种。
2、包装类的作用:
把基本数据类型包装一下,让它变成对象。基本数据类型不是对象,不能调用方法,不能多态,例如,想要创建一个包含布尔,整数,浮点数的数组,基本数据类型是无法做到的,所以有了包装类,也符合java中一切皆对象的原则。
从基本数据类型到包装类除了int的包装类是Integer、char的包装类是Character之外,其他包装类都是将基本数据类型首字母大写,如boolean-->Boolean。
3、实例测试
使用main方法测试十分不方便,我们想要让所有的测试都运行或者只运行某一个测试,所以引用单元测试@Test。
单元测试方法的要求:类必须是公共的,不能有任何构造器。
方法必须是公共非静态无返回值无参数
执行过程:在方法名上右击,点击run as -- junit
//使用单元测试
@Test
public void test1(){
System.out.println("test1...");
}
@Test
public void test2(){
System.out.println("test2...");
}
包装类:把基本数据类型包装成对象
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
装箱与拆箱
打通基本数据类型与包装类之间的桥梁。
public void test1(){
int n = 100;
//把基本型包装成对象
Integer obj1 = new Integer(n); //这个过程称为手工装箱
Integer obj2 = 200; //自动装箱,编译器行为 : Integer obj2 = Integer.valueOf(200);
// 或者 Integer obj2 = new Integer(200);
System.out.println(obj1);
System.out.println(obj2);
//把包装类对象中的基本值取出来,拆箱
int v1 = obj1.intValue(); //手工拆箱
int v2 = obj2; //自动拆箱,编译器行为 : int v2 = obj2.intValue();
int v3 = obj1 * obj2;
System.out.println(v3);
//把字符串变成整数
int v4 = Integer.parseInt("345"); //工具方法,静态方法
System.out.println(v4);
}
练习:
声明两个字符串,内容是整数 第一个字符串转换成整数,再手工装箱 把第二个字符串直接变成包装类对象 手工拆箱求和,自动拆箱求商
@Test
public void test2(){
//声明两个字符串,内容是整数
String s1 = "123";
String s2 = "3";
//第一个字符串转换成整数,再手工装箱
int i1 = Integer.parseInt(s1);
Integer obj1 = new Integer(s1);
//把第二个字符串直接变成包装类对象
Integer obj2 = Integer.parseInt(s2);
//手工拆箱求和,自动拆箱求商
int v1 = obj1.intValue();
int v2 = obj2.intValue();
int sum = v1 + v2;
System.out.println("sum:" + sum);
int shang = obj1 / obj2;
System.out.println("shang:" + shang);
}
注意:
自动装箱过程中(效率高),系统会有一个-128 到 127 大小的缓冲区,当创建对象过程中,程序优先从缓冲对象数组中取,超出此区域,会直接new();
自动装箱:Integer.valueOf(1);
@Test
public void test3(){
Integer i = 23;
Integer j = 23;
System.out.println(i == j);
Integer ii = -129;
Integer jj = -129;
System.out.println(ii == jj);
}