天天看点

JAVA常用类之包装类

java语言包装类把基本数据类型转换为对象。每个java基本类型在java.lang包中都有一个相应的包装类。

基本类型

包装类

boolean

byte

char

character

short

int

integer

long

float

double

每个包装类都有几种重载形式,以double为例。

除character之外,其他的包装类都可以以一个字符串为参数构造出他们的实例。

当包装类的构造方法参数为string类型时,字符串不能为空,而且该字符串必须可以解析为相应的基本数据类型。

character类和boolean类直接继承自object类,除此之外,其他的包装类都是java.lang.number的直接子类,因此都继承或覆盖重写了java.lang.number类中的方法。

返回值

方法名

说明

bytevalue()

以 byte 形式返回指定的数值

abstract double

doublevalue()

以 double 形式返回指定的数值

abstract float

floatvalue()

以 float 形式返回指定的数值

abstract int

intvalue()

以 int 形式返回指定的数值

abstract long

longvalue()

以 long 形式返回指定的数值

shortvalue()

以 short 形式返回指定的数值

包装类都覆盖了object类中的tostring()方法,以字符串形式返回被包装的基本数据类型。除了character类和boolean类外,包装类都有valueof(string s)静态工厂方法,可以将指定字符串解析成与之对应的基本类型。同样,字符串不能为空,而且该字符串必须可以解析为相应的基本数据类型。

jdk1.5及以后版本运行基本类型和包装类型进行混合运算。在jdk1.5版本之前,数学运算表达式中操作单元必须是基本数据类型。

装箱:把基本类型用它们相应的引用类型包装起来,使其具有对象的性质。int包装成integer、float包装成float。

拆箱:和装箱相反,将引用类型的对象简化成值类型的数据。

基本数据类型的自动装箱(autoboxing)、拆箱(unboxing)是自j2se 5.0开始提供的功能。

一般我们要创建一个类的对象实例的时候,我们会这样:

class a = new class(parameter);

当我们创建一个integer对象时,却可以这样:

integer i = 100; (注意:不是 int i = 100; )

实际上,执行上面那句代码的时候,系统为我们执行了:integer i = integer.valueof(100);

此即基本数据类型的自动装箱功能。