一、包装类概述
Java 提供了两个类型系统:基本类型与引用类型。
使用基本类型在于效率,然后很多情况,需要创建对象使用,因为对象可以做更多的功能。
基本类型对应的包装类:
对应的包装类(位于java.lang包中) | |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
二、装箱与拆箱
基本类型与对应包装类对象之间,来回转换的过程称为“装箱”与“拆箱”。
-
- 装箱:从基本类型转换到对应的包装类对象;
- 拆箱:从包装类对象转换到对应的基本类型。
- 装箱:从基本类型转换到对应的包装类对象;
1、装箱:把基本类型的数据,包装到包装类中(基本类型的数据 -> 包装类)
构造方法:
Integer(int value) 构造一个新分配的 Integer 对象,它表示指定的 int 值。
Integer(String s) 构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。传递的字符串,必须是基本类型的字符串,否则会抛出异常 如:"100" 正确; "a" 抛出NumberFormatException数字格式化异常
静态方法:
static Integer valueof(int i):返回一个表示指定的 int 值的 Integer 实例。
static Integer valueof(String a):返回保存指定的 String 的值的 Integer 对象。
2、拆箱:在包装类中取出基本类型的数据(包装类->基本类型的数据)
成员方法:
int intValue() 以 int 类型返回该 Integer 的值。
Demo:
1 // 装箱
2 //构造方法
3 Integer in1 = new Integer(1);
4 Integer in2 = new Integer("1");
5
6 //静态方法
7 Integer in3 = Integer.valueOf(1);
8 Integer in4 = Integer.valueOf("1");
9
10 // 拆箱
11 int i = in1.intValue();
三、自动装箱与自动拆箱
由于经常要做基本类型与包装类之间的转换,从 Java5(JDK1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。
Demo:
1 Integer i = 3; // 自动装箱。相当于Integer i = Integer.valueOf(3);
2 i = i + 5; // 等号右边:将 i 对象转成基本数值(自动拆箱) i.intValue() + 5;
3 // 加法运算完成后,再次装箱,把基本数值转成对象。
四、基本类型与字符串之间的转换
1、基本类型转换为字符串 String
a、基本类型的值 + "" 最简单的方法(最常用)
b、包装类的静态方法 toString(参数)
static String toString(int i) 返回一个表示指定整数的 String 对象。
c、String 类的静态方法 valueOf(参数)
static String valueOf(int i) 返回 int 参数的字符串表示形式。
2、字符串(String)转换为基本类型
除了 Character 类之外,其他所有包装类都具有 parseXxx 静态方法可以将字符串参数转换为对应的基本类型。
public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。
public static short parseShort(String s):将字符串参数转换为对应的short基本类型。
public static int parseInt(String s):将字符串参数转换为对应的int基本类型。
public static long parseLong(String s):将字符串参数转换为对应的long基本类型。
public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。
public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。
public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。
注意:如果字符串参数的内容无法正确转换为对应的基本类型,则会抛出java.lang.NumberFormatException
异常。