1.包装类的概述
Java语言用包装类来把基本类型的数据转换为对象。每个Java基本类型都有个相应的包装类。
包装类具有以下特点:
(1)所有包装类都是final类型,因此不能创建他们的子类。
(2)包装类是不可变类,一个包装类的对象自创建后,他所包含的基本类型数据就不能被改变。
2.包装类的常用方法
Character和Boolean类直接继承Object类,除此之外,其他包装类都是java.lang.Number类的直接子类。
Number类的主要方法如下:
(1)byteValue( ):返回Number对象所表示的数字的byte类型值。
(2)intValue( ):返回Number对象所表示的数字的int类型值。
(3)longValue( ):返回Number对象所表示的数字的long类型值。
(4)shortValue( ):返回Number对象所表示的数字的short类型值。
(5)doubleValue( ):返回Number对象所表示的数字的double类型值。
(6)floatValue( ):返回Number对象所表示的数字的float类型值。
包装类的方法归纳:
(1)包装类都覆盖了toString方法。
(2)除了Character和Boolean类,其他包装类都有valueOf(String s)静态工厂方法。参数s不能为空,而且该字符串必须可以解析为相应的基本数据类型。
Double d=Double.valueOf("123"); //合法
Integer i=Integer.valueOf("12"); //合法
Integer i=Integer.valueOf("abc"); //抛出NumberFormatException异常
(3)除了Character和Boolean类,其他包装类都有parseXXX(String s)静态工厂方法。把字符串变为相应的基本数据类型,而且该字符串必须可以解析为相应的基本数据类型,否则会抛出NumberFormatException异常。
int i=Integer.parseInt("123"); //合法 i=123
double b=Double.parseDouble("abc"); //抛出异常
3.包装类的自动装箱和拆箱
在JDK5以上的版本中,允许基本类型和包装类型进行混合数学运算。把基本类型转换为包装类型的过程叫装箱,把包装类还原为基本类型的叫拆箱。
Integer a=3; //自动装箱,把3包装成Integer对象
int b=new Integer(4); //自动拆箱,把Integer对象还原成基本类型
此外,从JDK5以后,允许直接向集合存放或读取基本类型的数据,实际上JDK会自动进行装箱和拆箱。
List<Integer> list=new ArrayList<Integer>();
list.add(4); //自动装箱
int i=list.get(0); //自动拆箱