如何在java中实现数组?

AFK*_*AFK 19 java arrays constants

数组实现为java中的对象吗?如果是这样,我在哪里可以查看数组类的源代码.我想知道数组中的长度变量是否被定义为常量,如果是这样,为什么它不是所有大写字母LENGTH使代码更容易理解.

Yis*_*hai 19

尽管数组是继承java.lang.Object的意义上的对象,但这些类是作为语言的特殊功能动态创建的.它们未在源代码中定义.

考虑这个数组:

MySpecialCustomObject[] array;
Run Code Online (Sandbox Code Playgroud)

没有这样的源代码.您已在代码中动态创建它.

长度是小写的原因和字段实际上是关于后来的Java编码标准在开发时不存在的事实.如果今天正在开发一个数组,它可能是一个方法:getLength().

长度是在对象构造中定义的最终字段,它不是常量,因此一些编码标准不希望它是大写的.但是一般来说,在今天的Java中,一般都是以大写形式作为常量完成,或者使用公共getter方法标记为private,即使它是最终的.

  • @ sn3twork,基本上数组具有对象的所有方法,加上公共最终长度变量,它有一个公共克隆方法,实现Cloneable和Serializable(但我认为由于遗留原因而不是Iterable).详细信息在JLS中:http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html (2认同)