package ktest;

public class K1 {
	public static void main(String[] args) {
		int a = 10;  //声明变量
		Integer i  = new Integer(a);//手动装箱--法1
		Integer j  = Integer.valueOf(a);//手动装箱--法2
		int k = Integer.parseInt(j.toString());//手动拆箱--法1
		int p = j.intValue();手动拆箱--法2
		System.out.println(k);
		System.out.println(p);
		
		
		//自动拆装箱
		//生成一个数值为20的Integer对象
		Integer b = 20;  //自动装箱--相当于Integer.valueOf(int)方法
		int c = b; //拆箱--相当于Integer.intValue()方法。
		
		/*
		 * 装箱就是  自动将基本数据类型转换为包装器类型;
		 * 拆箱就是  自动将包装器类型转换为基本数据类型
		 * 装箱不改变值,只改变为包装类类型Integer.valueOf(a)
		 * 拆箱可以获取各种基类型的值i.floatValue()、i.doubleValue()、、、
		 * 
		 * java5之后可以自动拆箱和装箱
		 * 装箱过程是通过调用包装器的valueOf方法实现的,
		 * 而拆箱过程是通过调用包装器的 xxxValue方法实现的
		 */
		System.out.println("装箱后的类型"+i.getClass());
		System.out.println(j.getClass());
		System.out.println(a);
		System.out.println(i);
		System.out.println("拆箱为float "+i.floatValue());
		System.out.println("拆箱为double "+i.doubleValue());
		
		System.out.println("拆箱前的类型"+b.getClass());
		System.out.println(b);
		System.out.println(c);
	}
}