句柄的本质:一个唯一的整数,作为对象的身份id,区分不同的对象,和同类中的不同实例。程序可以通过句柄访问对象的部分信息。句柄不代表对象的内存地址。

句柄和指针的区别:程序不能通过句柄直接阅读文件中的信息,指针是可以的。从所起的作用这点来说,句柄就是弱化后的指针,更安全,功能减少。

如果句柄不再I/O文件中,毫无用处。

说了那么多,其实就是:对象的引用,或者说指针也凑合能理解。

每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C或C++里的指针)?

所有这些在Java里都得到了简化,任何东西都可看作对象。因此,我们可采用一种统一的语法,任何地方均可照搬不误。但要注意,尽管将一切都“看作”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)。在其他Java参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一情形想象成用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。

此外,即使没有电视机,遥控板亦可独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。所以如果想容纳一个词或句子,可创建一个String句柄:

String s;

但这里创建的只是句柄,并不是对象。若此时向s发送一条消息,就会获得一个错误(运行期)。这是由于s实际并未与任何东西连接(即“没有电视机”)。因此,一种更安全的做法是:创建一个句柄时,记住无论如何都进行初始化:

String s = "asdf";

然而,这里采用的是一种特殊类型:字串可用加引号的文字初始化。通常,必须为对象使用一种更通用的初始化类型。

什么是java句柄_JAVA中的术语:句柄是啥意思相关推荐

  1. java 上溯_java中Instrument的上溯造型

    继承最值得注意的地方就是它没有为新类提供方法.继承是对新类和基础类之间的关系的一种表达.可这样总结该关系:"新类属于现有类的一种类型". 这种表达并不仅仅是对继承的一种形象化解释, ...

  2. java 事务_Java中事务总结详解(精华)

    1.什么是JAVA事务? 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (is ...

  3. [转载] c++多态与java多态性_Java中的多态性

    参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...

  4. java 且_JAVA中逻辑运算符“|”和“”与“||”和“”的用法

    1.使用规则: (1)& 可以用作逻辑与的运算符,表示逻辑与(and) a.当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false ...

  5. java 包装类_Java中的包装类

    Java中哪些需要包装类 它们将原始数据类型转换为对象.如果我们希望修改传递给方法的参数,则需要对象(因为基元类型是按值传递的). java.util包中的类只处理对象,因此在这种情况下包装类也有帮助 ...

  6. java 难度_java中难度大一点的面试题

    1.请大概描述一下Vector和ArrayList的区别,Hashtable和HashMap的区别.(5) (1)Vector和ArrayList的异同 实现原理,功能相同,可以互用 主要区别: Ve ...

  7. math java 计算_Java中的数学计算函数汇总

    Math类:  java.lang.Math类中包含基本的数字操作,如指数.对数.平方根和三角函数. java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(B ...

  8. java中的多态性_[转载] c++多态与java多态性_Java中的多态性

    参考链接: Java中的加法和串联 c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meani ...

  9. c++多态与java多态性_Java中的多态性

    c++多态与java多态性 Polymorphism is one of the core concepts of OOPS paradigm. The meaning of polymorphism ...

  10. java引_JAVA中的引用

    JDK1.2之后,Java扩充了引用的概念,将引用分为强引用.软引用.弱引用和虚引用四种. 强引用 类似于"Object a = new Object()"这类的引用,只要垃圾强引 ...

最新文章

  1. 智能合约和区块链技术:入门指南
  2. 如何理解导远技术手册
  3. [WinAPI] API 5 [遍历驱动器并获取驱动器属性]
  4. OWASP出品:Xenotix XSS漏洞测试框架及简单使用
  5. 【docker】常用docker命令,及一些坑
  6. Tinker 热修复框架模拟使用
  7. matlab2c使用c++实现matlab函数系列教程-eye函数
  8. 随机过程:鞅与马尔科夫过程的理解
  9. 从雷声谈云层中的电能
  10. C语言程序设计第三版微课版,C语言程序设计(第3版 微课版)
  11. 通过企业微信SCRM营销系统,完成百万私域用户引流
  12. 广汉哪里可以学计算机,广汉的年轻人学门啥技术好找工作呢
  13. php获取证书编号没有serialNumberHex只有serialNumber处理方法
  14. win10进行系统还原 (可以还原注册表文件 还可以清除近期卸载不了的软件)
  15. 兼容IE系列浏览器的CSS Hack
  16. 一文搞清楚软链接和硬链接
  17. Ubuntu20.04挂载4T数据盘流程
  18. 华为计算机单机pc游戏软件,华为应用市场pc端
  19. 3月30日—4月3日三年级课程
  20. Java 爪哇学习(三) 基础

热门文章

  1. c语言基础--ASCII码表
  2. 连接服务器的外呼系统设置,MicroSIP软电话配置说明
  3. Web前端工程师修炼之道(原书第4版) 中文pdf扫描版
  4. Eclipse 优化
  5. vscode终端中文乱码问题的解决方案合集c++
  6. 点云配准1:配准基础及icp算法
  7. 我的世界java安装_我的世界游戏安装教程 我的世界怎么安装
  8. Java的生成器模式(又名建造者模式),你真的会了吗
  9. 松下plc安装序列号afpsgr7_松下fpwin gr7下载 Control FPWIN GR7(松下plc编程软件) v2.21 中文安装版(附序列号) 下载-脚本之家...
  10. java保存图片进度条_java 进度条常用方法