首先8种基本类型对应的8的封装类,byte--->Byte; short --->Short; int----->Integer; long----->Long; float----->Float; double----->Double;
char------>Character; boolean---->Boolean;
1.从基本类型到引用类型的转化(也叫装箱操作):
第一种:自动装箱 Integer in=2;
第二种:手动显式装箱 Boolean flag=Boolean.valueOf(boolan f)与第一种其实是一种形式,第一种是其隐式的调用;
第三种: Char c=new Char('A'); 通过构造方法将引用类型封装成类
2. 从引用类型到基本类型的转化(也叫拆箱操作) :
Character c=new Characer('A');//利用构造方法对引用类型进行初始化,
第一种:自动拆箱 char ch=c;//等号右边的c表示的是Character 的实例对象;
第二种:手动显式拆箱 char c1=c.charValue();
3.字符串转化成封装类:
String s="afdfvd";
第一种 Boolean b=Boolean.valueOf(s);//只有s为true时,对象b对应的值才能是true;如果要转为其他的封装类,也要判断字符所代表的字符是否跟封装类对应,此时可用异常处理;
第二种:利用类的构造方法,Char c=new Char("s");//此时c所对应的值就是字符s;
4.封装类转换成字符串:
第一种:直接用+“”;实例 Integer in="9527";String s=in+""+"是华安";//此时字符s表示为9527是华安;
第二种:利用String方法 Boolean flag=true;String s=String.valueOf(flag);s+="代表真";此时字符串信息为 :“true代表真”;
第三种:利用String的toString方法,String s=Integer.valueOf(123).toString();
5.基本类型转换成字符串(不能使用字符串的构造方法):
第一种:直接用+“”;实例 String s='h'+“”+'y'+'w'+'a'+'n';注意只在第一个字符后面加了一个“”就可以将字符连成字符串;这里提一个小问题在System.out.println(2+1+“”+"模式");和System.out.println(""+2+1+"模式");第一个打印结果是“3模式”;而第二个打印结果为“21模式”;所有注意“”所起的作用域;
第二种:利用字符串的成员方法:String s=String.valueOf(123);
第三种:String s=Integer.valueOf(125).toString();
6.字符串转化成基本类型:
第一种:String s="3.14"; double d=Double.parseDouble(s);//这种方法char类型除外;
第二种:double d1=Double.valueOf(s).doublevalue();//对应2.将引用类型转换成基本类型,此处可隐藏
第三种:double d2=new Double(s).doublevalue();同第二种方法一样,还是利用封装类,先将字符串转换为封装类,然后再将其转化成基本类型
8种封装类中要注意的事项,除了Float和Double外,其他 的封装类都有缓存区,举例说明, Integer in=new Integer(22);Integer in2=new Integer(22);此时(in==in2)?true:false;的值为true;此时虽然in和in2比的同样是地址,但是缓冲区的范围为-128到127;也就是说在这个范围内的对象,当其new一个新类的时候,不会产生新的内存地址空间;由于Boolean 只有两个值,所以它在new的时候永远都是同一个地址空间;
面试题 : Integer in=new Integer(255);
int a=255;System.out.prinltn(in==a);//此时打印结果为true;in自动拆箱,两个值比的是值
Integer in=new Integer(255);
Integer in2=255;
System.out.println(in==in2);//此时打印结果为false;比的是内存地址
Integer in3=new Integer(100);
Integer in4=100;
System.out.println(in3==in4);//此时的打印结果还是false;