java包装类
在Java中,有8种基本数据类型:boolean、byte、char、short、int、long、float、double,对应的包装类分别为Boolean、Byte、Character、Short、Integer、Long、Float、Double。
包装类具有以下特点:
① 所有的包装类都是final类型,因此不能创建它们的子类。
② 包装类是不可变类,一个包装类的对象自创建后,它所包含的基本类型数据就不能改变。
③ JDK1.5后允许基本类型和包装类型进行混合数学运算。
System.out.println(new Integer(1)+2);
包装类的作用有两种:
① 作为和基本数据类型对应的类类型存在,方便涉及到对象的操作。
② 包含每种基本数据类型的相关属性如最大值、最小值等,以及相关的操作方法。
下面以Integer为例:
1、首先看一下API文档。
Integer位于java.lang包下,继承自java.lang.Number类。
Integer的构造方法有Integer(int value)和Integer(String s)。
所以System.out.println(new Integer("1")+2);也是合法的。
需要注意的是如果是new Integer("s"),编译会通过,但是在运行时会抛出NumberFormatException。
通过包装类可以取到最大最小值
System.out.println(Integer.MAX_VALUE); //2147483647
System.out.println(Integer.MIN_VALUE); //-2147483648
重写了Object的toString()方法,以字符串形式返回包装类对象所表示的基本数据类型。
还有两个常用的方法:parseInt和valueOf ,这两个都是静态方法,区别在于parseInt返回的是int,而valueOf 返回的是Integer。
int a = Integer.parseInt("123");
Integer b = Integer.valueOf("123");
System.out.println(a==b);//true
2、装箱和拆箱
装箱操作:将基本数据类型变为包装类
拆箱操作:将包装类变为基本数据类型
int x=1;
Integer y=new Integer(x);//装箱
int z=y.intValue();//拆箱
在JDK1.5之后,装箱拆箱可以自动完成。
int x=1;
Integer y=x;//自动装箱
int z=y;//自动拆箱
3、
和String的转换
String s="123";
int i=Integer.parseInt(s);
String s1=Integer.toString(i);