5

可能重复:
数组是如何在 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经验,所以我知道如何使用数组以及它们的作用,我只是想问它们是如何实现的以及为什么?

4

0 回答 0