public class ValueTest {
public static void change(int a) {
a = 0;
a++;
System.out.println(a);
}
public static void changeObject(A a) {
if(null != a)
System.out.println("is not null");
a = null;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String a = "123";
int c = 12;
change(c);
System.out.println(c);
A b = new A();
changeObject(b);
if(null == b)
System.out.println("change");
}
}
class A {
String a = null;
A() {
a = "123";
}
public String toString() {
System.out.println(a);
return a;
}
}
上面的例子里说明所谓的值传递和对象传递的一个例子。可是,值传递和引用传递的真正区别在哪里呢?我依然很迷惑。个人认为其中最大的差别是java中的基本类型和对象的=号运算的差别。具体是什么差别,个人认为java中基本类型通过native方法进行处理,进行地址存储,而对象则是引用,如java编程思想中描述的很玄的气泡例子。
如果有哪位更好的理解,请留言告诉我,谢谢啦!!