package com.dengwen3; public class Test{ public static void add3(Integer i){ int val=i.intValue(); i=new Integer(100); // i 指向新开辟的空间, 不会影响实参中的数据 } public static void add4(Integer i){ i=100; //这里会发生自动装箱, 相当于是Integer i=new Integer(100); //所以add4()实际上和add3()是一样的 } public static void add3(StringBuffer sb){ sb=new StringBuffer("I am lidengwen"); //这里的sb应经指向新开辟的空间了, 不会影响实参中的数据 } public static void add(StringBuffer sb){ sb=sb.append("wen"); //该句操作进行后, 对象的地址是不变的, 可以直接写成sb.append("wen"); //因为 } public static void main(String args[]){ Integer i=new Integer(0); add3(i); System.out.println(i.intValue()); Integer j=new Integer(0); add3(j); System.out.println(j.intValue()); StringBuffer s=new StringBuffer("test"); add3(s); System.out.println(s); StringBuffer ss=new StringBuffer("wen"); add(ss); System.out.println(ss); /*结果会是多少, 是0, 为什么? i=new Integer(val); */ } } /* * 装箱操作:把基本数据类型变为包装类 * 拆箱操作:把包装类变为基本数据类型 * */