前言
记得刚学java到工作一两年时对java的值传递,引用传递的理解一直是一种朦胧的状态,一直感觉前面好像蒙了一层雾,有种雾里看花的感觉,所以有了这篇文章,想让大家能更加深刻的理解其中的原理。
一、问题切入
全部都是文字,没有程序,不能够更好的切入问题,我们看下面一段程序(1):
public class Test {
private void print(int a){
System.out.println("-----1----" + a);
change(a);
System.out.println("-----2----" + a);
}
private void change(int a){
a = 2;
}
public static void main(String[] args) {
int a = 0;
Test aTest = new Test();
aTest.print(a);
}
}
问1:-----1,2----后边的输出的a值分别是多少?
看完程序(1),我们再看程序(2):
class A{
public B b;
public A(B b){
this.b = b;
}
public B getB(){
return b;
}
}
class B{
}
public class Test {
public void changeObj(A a){
a = new A(new B())