在java中一切皆对象,但操纵的标示符实际上是指向 一个对象的“句柄”
String a = "123"; a 就是句柄 (handle)实际对“123”的操纵是通过 句柄a 来完成的
可以想象为用 遥控板(句柄)操纵电视机(对象) 但是遥控板又是独立的 即没有电视机 遥控板也可以独立存在,但是如果没有电视机而去操纵遥控板是没有意义的
String b;
此时若操作b 会报错,因此创建一个句柄时一般都需要 初始化 即给句柄 一个连接的对象。
创建句柄时我们都希望它连接一个新的对象,一般都是用 new关键字 来实现 new new就是 把我变成 这些对象的一种新类型
String a = new String("123");
赋值是用=运算符进行的,它的意思是“取右边的值 把它复制到左边”。右边的值可以是任何常数,变量或者表达式,只有能产生一个值就行。但左边的必须是一个
已命名的,明确的变量。也就是它必须有一个物理性的空间来保存右边的值。
当为对象赋值的时候,对一个对象进行操作实际上是对句柄的操作。所以若“从一个对象到另一个对象”赋值,实际上就是讲句柄从一个地方复制到另一个地方。、
这意味着 假如为对象使用“C=D”那么C和D最终都会指向最初只有D才指向的对象。
String D="12";
String C=D;
那么 C,D两个句柄是指向同一个对象的。