1.概述
包装类就是基本类型转化成为对象的类(Java.lang.Number类下的子类提供了6种基本类型的包装 类)。
每一个基本类型都有一个与之对应的包装类(wrapper)。
2.转换关系
//1.基本类型-->包装类
int i=100;
Integer integer=Integer.valueOf(i);
System.out.println(integer);
//2.包装类-->基本类型
Integer integer1=100;
int i1=integer1.intValue();
System.out.println(i1);
//3.基本类型-->String
int i3=200;
String s=String.valueOf(i3);
System.out.println(s);
//4.!!String-->基本类型
//问:传入的参数String不匹配int会怎么样?
// 编译没有异常(代码没有报错),解析异常NumberFormatException
String s1="123";
int i2=Integer.parseInt(s1);//!
System.out.println(i2);
//5.String -->包装类 234.0 NumberFormatException//String 本质上是char类型的数组
String s2="234";
Integer integer2=Integer.valueOf(s2);
System.out.println(integer2);
//6.包装类 -->String
Integer integer3=123321;
String s3=integer3.toString();
System.out.println(s3);
3.自动装箱和拆箱
jdk5.0后加入了autoboxing(自动装箱和拆箱)功能。
自动装箱拆箱就是编译器在生成字节码时自动完成了包装类和基本类型间的相互转换的方法调用
装箱: 基本类型--->包装类 拆箱: 包装类--->基本类型
//7.autoboxing:基本类型和包装类之间的转换,是自动完成的 Jdk1.5
//直接写出来的数字默认为int,直接写出来的小数默认为double,直接量
Integer x=100;//Integer.valueOf(100);//自动装箱 本来应该强转Integer = (Integer)int;
Integer y=200;
/*
int x=x.intValue();//自动拆箱
int y=y.intValue();//自动拆箱
int z=x+y;
Integer z=Integer.valueOf(z);//自动装箱
*/
Integer z=x+y;
System.out.println(z);//300