变量,对象和引用之间究竟有什么区别?
例如:它们都指向某种类型,并且它们都必须保存值(当然除非您具有临时的无效类型),但它们的功能和实现究竟如何彼此不同?
例:
Dog myDog = new Dog(); //variable myDog that holds a reference to object Dog
int x = 12; //variable x that hold a value of 12
Run Code Online (Sandbox Code Playgroud)
它们有相同的概念,但它们有何不同?
即,在
class A {
public String s;
}
Run Code Online (Sandbox Code Playgroud)
和
A a1 = new A();
a1.s = "bla";
A a2 = new A();
a2.s = a1.s;
a1 = null;
Run Code Online (Sandbox Code Playgroud)
将a1被垃圾收集或是a1.s允许收集它的参考(我宁愿做一个深层复制a2.s = new String(a1.s))?
非常感谢提前!