句柄

在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两个句柄是指向同一个对象的。

 

posted @ 2017-02-23 16:38  奋斗的渣渣  阅读(181)  评论(0编辑  收藏  举报