Discuss / Java / 用配钥匙解释引用变量的传递

用配钥匙解释引用变量的传递

Topic source

Junes_99994

#1 Created at ... [Delete] [Delete and Lock User]

bob 配(复刻)了一把 "Bob" 家的钥匙

String bob = "Bob";

bob 复刻了一把 "Bob" 家的钥匙 给了爱人小p

p.setName(bob); // p.name = bob

现在小p 和 bob 都能通过这把钥匙访问 "Bob" 的家,他们的爱巢

System.out.println(p.getName()); // "Bob"

bob 移情别恋了"Alice",于是丢弃了"Bob" 家的钥匙,重新复刻了"Alice"家的钥匙

bob = "Alice";

可怜的小p,被bob劈腿了,讽刺的是,他们爱情的见证,"Bob" 家的钥匙仍留在孤单的小p手里

System.out.println(p.getName()); // "Bob"

引用变量的赋值,传递的永远是房间钥匙

只有当钥匙对应的房间改变,访问的引用变量才会改变

重复赋值引用变量,会抹去先前的房间钥匙,替换为之后的钥匙。

这里小p只接受过一次"Bob" 家的钥匙,钥匙对应的"Bob" 家没有改变

而bob 接受了两次钥匙。


  • 1

Reply