可能重复:
数组是如何在 java 中实现的?
为什么没有 java.lang.Array 类?如果一个java数组是一个对象,它不应该扩展对象吗?
我最近在考虑 Java 数组,我想知道它们到底是什么?
他们是对象吗?
- 您可以对它们调用 toString() (即使它只为您提供
内存地址) - 以下行编译
Object a = new int[5]
;
然而,它们真的是对象吗?
- 您通过...创建一个新数组,
new int[5]
这就像我从未见过的构造函数一样。人们会认为它会是new Array<Integer>(5)
或类似的东西 - 如果您查看 Java API,您将找不到一个
array
类...您会发现Array
,但这并不是真正的数组
它的可迭代属性是怎么回事
- 您可以在 for each 循环中遍历一个数组,但是
iterator
我找不到任何数组方法
我认为数组只是Java 语言中直接内置的一些特殊异常;然而,这也提出了一个问题:为什么要对数组进行特殊处理?(为什么没有 Array API?为什么有不同类型的构造函数?)
任何关于数组真实性质的澄清将不胜感激。
PS我有几年的Java经验,所以我知道如何使用数组以及它们的作用,我只是想问它们是如何实现的以及为什么?