先来看一段代码,猜猜结果是啥:(SonClass中定义了一个public成员变量weight,可通过构造方法赋值)
public static void main(String[] args) {
String str = "12345";
SonClass aa = new SonClass(10);
SonClass bb = new SonClass(12);
Method(str,aa,bb);
System.out.println("str="+str+"\naa="+aa.weight+"\nbb="+bb.weight);
}
public static void Method(String s,SonClass a,SonClass b) {
s = "www.996.com";
a.weight = 999;
b = new sonClass(888);
}
输出:
str=12345
aa=999
bb=12
如果你答对了,也不要高兴,你可能只是感觉上对了,我之前一直以为对象引用和C语言中的指针是一回事,其实不是,他是引用的复制,接下来我们看看他在内存中是怎么存储的吧:
总之你可以这么理解: = 抽象上来说在改变指向,内存中其实是拿到了新的地址。