Java是否使用指针按索引访问数组?
我很好奇。java使用指针,如C++或C++来访问数组吗?使用C语言时,x[a]可以转换为*(x+a)。Java语言呢?它与C和C++相同,或者只是使用顺序搜索来访问元素?如果它是一个对象数组,它本质上是指向这些对象的指针数组,但是对于原始值来说,这不是一个例子。与C++不同,你不能用java做指针运算。< /P> < P> OK,我从这个找到了答案。 在Java中,普通指针算法(引用和取消引用)不再存在。然而,指针是存在的。他们称之为参考文献,但这并不能改变它是什么和数组访问仍然是完全一样的:查看地址,添加索引并使用该内存位置。但是在Java中,它将检查索引是否在最初分配的数组的范围内。否则,它将抛出一个异常Java是否使用指针按索引访问数组?,java,arrays,pointers,indexing,Java,Arrays,Pointers,Indexing,我很好奇。java使用指针,如C++或C++来访问数组吗?使用C语言时,x[a]可以转换为*(x+a)。Java语言呢?它与C和C++相同,或者只是使用顺序搜索来访问元素?如果它是一个对象数组,它本质上是指向这些对象的指针数组,但是对于原始值来说,这不是一个例子。与C++不同,你不能用java做指针运算。< /P> < P> OK,我从这个找到了答案。 在Java中,普通指针算法(引用和取消引用)不再存在。然而,指针是存在的。他们称之为参考文献,但这并不能改变它是什么和数组访问仍然是完全一样的:
Java不是C,只能使用
array[index]
语法访问数组。与C不同的是,在运行时,如果index
超过数组大小,则会出现一个错误。从某种意义上说,数组是通过偏移起始点来访问其条目的连续内存块的包装,您可以将其视为类似于罩下的指针。从技术上讲,我认为这是JVM的一个实现细节,这不是Java语言的要求,但可能所有合理的JVM实现都在内部使用指针访问的等价物。对象不是指针。对象是对象。@khelwood所有对象都是引用。这难道不意味着它本质上就是一个指针吗?对象与引用不同。对象就是引用所指的对象。@khelwood哦,是的,删除了最后一句话,以便更清楚。谢谢