包装类
包装类把基本数据类型转换为对象,每个基本类型都有自己对应的包装类。
基本数据类型与其对应包装类:
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
包装类可以简单理解为对八种基本数据类型以类的方式进行包装,使其在无法使用基本数据类型的场景时,可以创建对应的对象完成操作。
-
所有的包装类都可以将与之对应的基本数据类型作为参数,进行实例化。
public Type (type value):
Float f1 = new Float(15.3f);//float类型的数值
除Character类外,其他包装类可将一个字符串作为参数构造它们的实例
public Type (String value):
Float f2 = new Float("15.3");//String类型的数值
- Boolean类构造方法参数为String类型时,若该字符串内容为true(不考虑大小写),则该Boolean对象表示true,否则表示false
//不区分大小写 只要是true就可以
Boolean b1 = new Boolean(true); //返回值为 true
Boolean b2 = new Boolean("TrUe");//返回值为 true
- 当Number包装类构造方法参数为String 类型时,字符串不能为null,且该字符串必须可解析为相应的基本数据类型的数据,否则编译不通过,运行时会抛出NumberFormatException异常
//正常输出,进行类型转换
Integer n2 = new Integer("123");
System.out.println(n2.toString());
//无法编译通过,报异常信息 传入参数必须符合对应的基本数据类型
Integer n3 = new Integer("123abc");
System.out.println(n2.toString());
- toString():以字符串形式返回包装对象表示的基本类型数据(基本类型—>字符串)
String id = Integer.toString(25);
String id = 25+"";
- parseXxx():把字符串转换为相应的基本数据类型数据(Character除外)(字符串->基本类型)
String s2 = "true";
//parseXxx()方法是静态方法,直接通过类进行调用
boolean b = Boolean.parseBoolean(s2);
System.out.println(b);
- valueOf():所有包装类都有如下方法(基本类型->包装类)
public static Type valueOf(type value)
Integer intValue = Integer.valueOf(21);
除Character类外,其他包装类都有如下方法(字符串->包装类)
public static Type valueOf(String s)
Integer intValue = Integer.valueOf("21");
- 自动装箱:基本类型转换为包装类的对象
int num1 = 20;
Integer integer = num1;//原本步骤:Integer integer = new Integer(num1);
System.out.println("num1自动装箱后:"+integer.toString());//20
- 自动拆箱:包装类对象转换为基本类型的值
int num3 = integer;
System.out.println("num1自动拆箱后:"+(num3+1));//21
注意:
JDK1.5后,允许基本数据类型和包装类型进行混合数学运算;
包装类并不是用来取代基本数据类型的,只是特殊需要时才使用。