Wrapper Class 包装类

来源:互联网 发布:数据字典 英文 编辑:程序博客网 时间:2024/04/29 20:05
*What is Wrapper Class(包装类)?
Java为8种数据类型分别定义的相应的引用类型,称之为基本数据数据的“包装类”。包括:Byte、Short、Integer、Long、Character、Float、Double、Boolean。这些类都继承自Object类。


*How to use Wrapper Class?
1. 通过构造器创建一个包装类对象,通过xxxValue()实例方法来获取对象的值;
boolean b1 = true;
Boolean b1Obj = new Boolean (b1);
boolean b2 = b1Obj.booleanValue();


//下面代码将引发java.lang.NumberFormatException错误
Long lObj = new Long ("ddd");


2. 直接将一个基本类型赋给包装类对象
Integer inObj = 5;
int in = inObj;


3. 包装类实现基本类型变量和字符串之间的转换
3.1 字符串-->基本类型变量
A. 利用包装类提供的parseXXX (String s)方法;
B. 利用包装类提供的XXX(String s)构造器;
3.2 基本类型变量-->字符串
利用String包装类提供的多个重载valueOf()方法;


*Why we use Wrapper Class?
1. 满足有些方法对参数的要求
有些方法只能传一些Object参数,例如List类里面有一个add(String item)的方法,只能传;
2. 实现字符串与基本变量之间的转换
上述How里面第3点已经介绍了; 
另一种更简单的转换方法为:
//intStr的值为5
String intStr = 5 + "";


其他:
1. 包装类对象的值可以与基本类型值比较;
2. JDK 1.5以后支持自动装箱后,某些情况下比较会有问题(缓存机制),例如:
Integer ina = 2;
Integer inb = 2;
此时,如果比较 ina == inb,结果为true;
但是,如果将ina,inb的值改为128,再执行比较时,就会false;(-128,127)之间整数系统为放入一个cache数组缓存起来;128时会再创建一个对象;


原创粉丝点击