转自:http://edison87915.iteye.com/blog/735563
每种编程语言都有自己的数据处理方式。有些时候,程序员必须时刻留意准备处理的是什么类型。您曾利用一些特殊语法直接操作过对象,或处理过一些间接表示的对象吗(C或C++里的指针)?
所有这些在Java”对象,但操纵的标识符实际是指向一个对象的“句柄”(Handle)。在其他Java参考书里,还可看到有的人将其称作一个“引用”,甚至一个“指针”。可将这一情形想象成用遥控板(句柄)操纵电视机(对象)。只要握住这个遥控板,就相当于掌握了与电视机连接的通道。但一旦需要“换频道”或者“关小声音”,我们实际操纵的是遥控板(句柄),再由遥控板自己操纵电视机(对象)。如果要在房间里四处走走,并想保持对电视机的控制,那么手上拿着的是遥控板,而非电视机。
此外,即使没有电视机,遥控板亦可里都得到了简化,任何东西都可看作对象。因此,我们可采用一种统一的语法,任何地方均可照搬不误。但要注意,尽管将一切都“看作独立存在。也就是说,只是由于拥有一个句柄,并不表示必须有一个对象同它连接。所以如果想容纳一个词或句子,可创建一个String句柄:
String s;
但这里创建的只是句柄,并不是对象。若此时向s发送一条消息,就会获得一个错误(运行期)。这是由于s实际并未与任何东西连接(即“没有电视机”)。因此,一种更安全的做法是:创建一个句柄时,记住无论如何都进行初始化:
String s = "asdf";
然而,这里采用的是一种特殊类型:字串可用加引号的文字初始化。通常,必须为对象使用一种更通用的初始化类型。
分享到:
相关推荐
5. **句柄(Handle)**:虽然Java中没有直接使用"句柄"这个术语,但在讨论对象引用时,我们可以借用这个概念。句柄类似于Windows编程中的句柄,它是一个标识符,用于间接访问对象。在Java中,引用就起到了类似的作用...
file 文件 文件、文件对象 file input/output 文件输入/输出 文件I/O filter 过滤器 过滤器(数据处理) final class 最终类别(不可被继承) 最终类(Java中) finite state machine 有限状态机 有限状态自动机...
- **句柄(Handle)**:句柄是计算机编程中的一个术语,通常用来表示某个对象的唯一标识符。在本篇文档中特指浏览器窗口句柄,它是浏览器窗口的一个唯一标识。 - **Selenium**:这是一个用于Web应用程序测试的工具。...
- **jobject**: Java对象的句柄。 - **jstring**: Java字符串对象的句柄。 - **jclass**: Java类的句柄。 - **jmethodID**: Java方法标识符。 - **jfieldID**: Java字段标识符。 #### 三、JNI数据类型映射 JNI定义...
Java是一门广泛使用的编程语言,它使用了大量英语单词作为关键字和术语。掌握这些英语单词对于理解Java编程和提高开发效率至关重要。在这份文档中,列举了众多的Java编程相关的英语单词及其含义,这些单词覆盖了从...
- **23.3 对象句柄** - **句柄管理**:介绍数据库句柄和环境句柄的概念及使用方法。 - **23.4 错误处理** - **错误代码**:列出常见的错误代码及其含义,并提供相应的处理建议。 #### 24. 开源嵌入式数据库 ...
- **定义**: 对术语或概念给出明确解释。 - **示例**: 对变量的定义。 **1.31 重构 (Reconstructed)** - **定义**: 改进代码结构而不改变其外部行为的过程。 - **示例**: 重写函数提高效率。 **1.32 符号序列 ...
Ivor Horton是撰著Java、C和C++编程语言图书的杰出作家之一。大家一致认为,他的著作独具风格,无论是编程新手,还是经验丰富的编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事...
Ivor Horton还著有Beginning Visual C++ 6、Beginning C Programming和Beginning Java 2等多部入门级好书。 目录 封面 -18 前言 -14 目录 -9 第1章 使用Visual C++ 2005编程 1 1.1 .NET Framework 1 1.2 CLR 2...
在Java中,`java.nio`包提供了`FileChannel`,通过`transferTo`方法可以监控传输进度。对于更复杂的文件操作,开发者可能会使用第三方库,如Python的`tqdm`,它可以方便地添加进度条到任何迭代器。 总之,"写文件...