这里的术语很模糊。
Java支持所谓的“引用”。引用的行为 非常 类似于类似C / C ++的语言中的指针。他们 不会 采取同样的方式“引用”,在这些语言的工作。
C语言中的指针与Java语言中的引用之间的 主要 区别是:
- 您不能在Java中执行指针算术(即,您不能从Java引用中“添加”或“减去”, 只能对其 取消引用或将其与另一个引用进行比较)。
- 您不能将其强制转换为不兼容的类型:Java具有严格的类型安全性,不能将内存中的字节“重新解释”为其他对象。
对于指针的 某些
用法,这没有真正的效果(例如,链表在两种语言中的工作原理几乎相同),对于其他用法,差别非常大(C中的数组只是奇特的指针算法,在Java中,它们的工作原理却大不相同)。
因此,Java引用可以称为“受限指针”。
维基百科将指针定义为
…一种编程语言数据类型,其值 直接 引用(或“指向”)另一个值
强调我的。根据这个 严格的 定义,Java没有指针。
更通用的参考是指针的超类,但是也禁忌了更抽象的东西,例如文件句柄甚至URL。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)