A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© danmo 中级黑马   /  2014-8-26 20:45  /  2043 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中对象句柄是什么意思?

评分

参与人数 1黑马币 +5 收起 理由
格子、 + 5 细节决定成败,以前没在意过这问题.

查看全部评分

3 个回复

倒序浏览
等一下管理员会不会说你灌水,我都不敢发帖了。
回复 使用道具 举报
每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C或C++里的指针)?
  所有这些在Java里都得到了简化,任何东西都可看作对象。因此,我们可采用一种统一的语法,任何地方均可照搬不误。但要注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)。在其他Java参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一情形想象成用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。
  此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。所以如果想容纳一个词或句子,可创建一个String句柄:
  String s;
  但这里创建的只是句柄,并不是对象。若此时向s发送一条消息,就会获得一个错误(运行期)。这是由于s实际并未与任何东西连接(即“没有电视机”)。因此,一种更安全的做法是:创建一个句柄时,记住无论如何都进行初始化:
  String s = "asdf";
  然而,这里采用的是一种特殊类型:字串可用加引号的文字初始化。通常,必须为对象使用一种更通用的初始化类型。

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 赞一个!

查看全部评分

回复 使用道具 举报
何艳梅 发表于 2014-8-26 23:33
等一下管理员会不会说你灌水,我都不敢发帖了。

如果真正用心了,我们怎么会说大家灌水,有什么不满就要大声说出来!!!我们需要愤青!!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马