目的:为了方便操作基本数据类型值,将其封装为对象,在对象定义了属性和行为,丰富了改数据的操作,用于描述该对象的类也就成为基本数据类型对象包装类。
例如:int类型的取值范围:Integer------>Integer.MAX_VALUE
8种数据类型包装类:
byte ——Byte
short ——Short
int ——Integer
long-----Long
float-----Float
double----Double
char----Character
boolean---Boolean
该包装对象主要用于基本数据类型和字符串之间的转换,
基本数据类型->字符串的三种方式:
(1)基本数据类型值+""
(2)使用Interger的静态方法:static String toString(基本数据类型值)
(3)使用String类的静态方法static String valueOf(基本数据类型值)
字符串->基本数据类型
(1)使用包装类中的静态方法 XXX parseXXX(XXX类型字符串)
int parseInt(int型字符串);
long parseLong(Long型字符串);
boolean parseBoolean(Boolean型字符串);例如:if(Boolean.parseBoolean("true"));
tip:只有character没有parse方法。(2)如果字符串被Integer进行对象的封装,可使用另一个非静态的方法,intValue(),将一个Integer对象转化成基本数据类型值
Integer i=new Integer("123");
sysout("i.intValue");
进制转化问题:
(1)十进制转化为其他进制
二进制:static String toBinaryString(int);
16进制:static String toHexString(int);
八进制:static String toOctalString(int);
(2)其他进制的转化:
Integer.toString(n,m)
n是数,m是进制数,可以是(toBinaryString)2->2进制,(toHexString)16->16进制,(toOctalString)8->8进制,
Integer.parseInt("A",B)
将数值A转化为十进制,其中B可以为二进制,可以为八进制,可以为十六进制,只要写B对应于相应的数字即可(2,8,16)
装箱和拆箱:Integer i= new Integer(4);
Integer i=4;->1.5之后的新特性,自动装箱,与上式等价
i=i+6;->自动拆箱,等价于i=new Integer(i.intValue()+6);
关于装箱和拆箱的1.5的新特性
Integer a =new Integer(127); Integer b =new Integer(127); a==b; //false a.equals(b); //true Integer x=127; Integer y=127; x==y; //true x.equals(b); //ture
Integer a =new Integer(128); Integer b =new Integer(128); a==b; //false a.equals(b); //true Integer x=128; Integer y=128; x==y; //false x.equals(b); //ture
原因:jdk1.5之后自动装箱,如果装箱的是一个字节,那么该数据会被共享不回重新开辟空间。