基本数据类型对象包装类的最常见作用就是用于基本数据类型和字符串类型之间做转换。
基本数据类型转成字符串:
基本数据类型+“”
基本数据类型.toString(基本数据类型值)
如:Integer.toString(34);//将34整数变成“34”;
字符串转成基本数据类型:
静态方法:
十进制转成其他进制:xxx a = Xxx.parseXxx(String);
eg.int a = Integer.parseInt("123");
非静态方法:
eg:Integer i = new Integer("123");
int num = i.intValue()
其他进制转化成十进制:toBinaryString();
toHexString();
toOctalString();
------------------------------------------------------------------parseInt(String,radix);
eg:int x = Integer.parseInt("3c",16);//代表把16进制的3c转化成十进制,然后赋值给x。
JDK1.5以后新特性
自动装箱:
等同于Integer x = 4;//x是引用,4是对象,不是基本数据类型Integer x = new Integer(4);
自动拆箱:(接上)
需要注意的是,如下代码:x = x/* x.intValue() */+ 2 ;
class IntegerDemo{
public static void main(String[] args){
Integer m = 128;
Integer n = 128;
sop("m==n:"+(m==n));
Integer a = 127;
Integer b = 127;
sop("a==b:"+(a==b));
}
public static void sop(String str){
System.out.println(str);
}
}
为什么会出现这种现象呢?
解释:
m==n结果为false很好理解,因为新特性省略了自动装箱的过程,所以实际上是new了两个对象,自然对应内存中两片存储空间,所以结果为false。
而a==b结果为true的原因是因为当数值在byte范围(-128~127)内时,对于新特性,如果该数值已经存在,则不会再开辟新的空间。即a和b指向同一个Integer对象。