C支持指针,而Java则不支持.但是当许多程序员质疑如何在没有指针的情况下工作时,发起人开始说“受限制的指针”.所以我们可以说Java支持受限制的指针?
解决方法:
这里的术语非常模糊.
Java支持它所谓的“引用”.引用很像C/C++类语言中的指针.它们的行为与“引用”在这些语言中的工作方式不同.
C中的指针与Java中的引用之间的主要区别是:
>您不能在Java中执行指针运算(即,您不能从Java引用中“添加”或“减去”,您只能取消引用它或将其与另一个进行比较).
>您无法将其转换为不兼容的类型:Java是强类型安全的,您不能将内存中的字节“重新解释”为其他对象.
对于指针的某些用途,这没有实际效果(例如链接列表在两种语言中的工作方式几乎相同),对于其他用途,差异非常大(C中的数组只是花哨的指针算术,在Java中它们的工作方式完全不同).
因此,在某种程度上,Java引用可以称为“受限指针”.
… a programming language data type whose value refers directly to (or “points to”) another value
强调我的.根据这个严格的定义,Java没有指针.
更一般的reference是指针的超类,但也包含更多抽象的东西,如文件句柄甚至URL.