包装类的概念
- 基本数据类型,使用起来非常方便。但是没有对应的方法来操作这些基本类型的数据。因此我们可以使用一个类,把基本数据类型的数据装起来,在类中定义一些方法来操作这些基本类型的数据。这个类就叫做包装类
基本类型 | 包装类(引用类型,包装类都位于java.lang包下) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
装箱与拆箱
- 基本类型与对应的包装类对象之间,来回转换的过程叫做“装箱”与“拆箱”。下面以int为例进行举例。
- 装箱:把基本数据类型的数据,包装到包装类中(基本数据类型 —> 包装类)
- 构造方法:
- Integer(int value):构建一个新分配的Integer对象,它表示指定指定的int值
- Integer(String s):构建一个新分配的Integer对象,它表示String参数所指示的int值(传递的字符串必须是基本类型的字符串,“100”(√) “A”(×))
- 静态方法:
- static Integer valueOf(int i):与Integer(int value)相似
- static Integer valueOf(String s):与Integer(String s)相似
- 构造方法:
- 拆箱:从包装类中取出基本类型的数据(包装类 —> 基本数据类型)
- 成员方法:
- int intValue():以int类型返回该Integer类型
- 成员方法:
自动装箱与自动拆箱
- 基本类型的数据与包装类之间可以自动的相互转换(JDK 1.5之后出现的新特性)
- 自动装箱:直接把int类型的整数赋值包装类
- Integer in = 1; 相当于 Integer in = new Integer(1);
- 自动拆箱: in是包装类,无法直接参与运算,可以自动转换为基本数据类型,再进行计算
- in+2; 就相当于 in.intValue()+2=3
- in = in.intValue()+2=3 又是一个自动装箱的操作
基本数据类型与字符串之间的相互转换
-
基本数据类型 --> 字符串(String)
- 基本类型的值 + “”(空字符串) —— 最简单的方法(工作中常用)
- 包装类的静态方法toString(参数),注意不是Object类的toString()(一个有参数,一个没参数,为重载的关系)
- static String toString(int i):返回一个表示指定整数的String对象(以Integer为例)
- String类的静态方法ValueOf(参数)
- static String ValueOf(int i):返回int参数的字符串表示形式(以int为例)
-
字符串(String)–>基本数据类型
-
使用包装类的静态方法parseXXX(String 数值类型的字符串)
- Integer类:static int parseInt(String s)
- Double类:static double ParseDouble(String s)
- …
-
注意:转换的字符串必须是数值类型(即 “100”(√)“a”(×))
-