包装类概念
基本类型的数据使用起来非常的方便但是没有相关的方法对其进行操作,所以我们可以使用一个类,把基本类型的数据包装起来,这就叫包装类。
在包装类中可以定义一些方法用来操作基本类型的数据。
装箱拆箱
装箱:
把基本类型的数据包装到包装类中(基本类型的数据 --> 包装类)
//静态方法
Integer integer1 = Integer.valueOf(1);
System.out.println(integer1);//1
Integer integer2 = Integer.valueOf("2");
System.out.println(integer2);//2
拆箱:
从包装类中取出基本类型的数据(包装类 --> 基本类型的数据)
int i = integer1.intValue();
自动装箱与自动拆箱
基本类型的数据和包装类之间可以自动切换
是JDK1.5之后出现的新特性
自动装箱:
/*
直接把int类型的整数赋值给包装类
Integer i = 1; 就相当于Integer i = Integer.valueOf(1);
*/
Integer i = 1;
自动拆箱:
/*
i是包装类,无法直接参与运算,可以自动转换为基本类型再参与运算
i + 2 就相当于i.intValue() + 2 = 3;
i = i + 2;就相当于i = new Integer(3); 自动装箱
*/
i = i + 2;
举例(ArrayList)
/*
ArrayList无法直接存储基本类型数据,可以存储Integer包装类
*/
ArrayList<Integer> list = new ArrayList<>();
list.add(1);//自动装箱,相当于list.add(Integer.valueOf(1));
int a = list.get(0);//自动拆箱,相当于list.get(0).intValue();
基本类型与字符串之间的转换
基本类型 --> 字符串
- 基本类型数据的值+" "(最简单方式)
String str = 100+"";
System.out.println(str+200);//100200
- 使用包装类中的静态方法
String str = Integer.toString(100);
System.out.println(str+200);//100200
- 使用String类中的静态方法
String str = String.valueOf(100);
System.out.println(str+200);//100200
字符串 --> 基本类型
//使用各包装类中的parseXXX方法
int i = Integer.parseInt("100");
System.out.println(i + 200);//300