数组是如何在java中实现的?
数组在java中作为对象实现对吗?如果是这样,我在哪里可以查看数组类的源代码。我想知道数组中的长度变量是否被定义为常量,如果是这样,为什么它不是全大写字母LONG以使代码更易于理解。
数组在java中作为对象实现对吗?如果是这样,我在哪里可以查看数组类的源代码。我想知道数组中的长度变量是否被定义为常量,如果是这样,为什么它不是全大写字母LONG以使代码更易于理解。
尽管数组是对象,因为它们继承了java.lang.Object,但这些类是作为语言的特殊功能动态创建的。它们未在源代码中定义。
请考虑以下数组:
MySpecialCustomObject[] array;
没有这样的源代码。您已经在代码中动态地创建了它。
长度是小写和字段的原因实际上是关于后来的Java编码标准在开发时不存在的事实。如果今天正在开发一个数组,它可能是一种方法:getLength()。
Length 是在对象构造时定义的最终字段,它不是一个常量,因此一些编码标准不希望它是大写的。然而,一般来说,在今天的Java中,一切通常要么以大写常量的形式完成,要么用公共getter方法标记为私有,即使它是最终的。
对于我们声明的每个数组,Java中都有相应的类,但对我们来说不可用。你可以使用 getClass().getName() 来查看这些类。
int[] arr=new int[10];
System.out.println(arr.getClass().getName());
输出 : [I
其中“[”表示一维数组,“I”表示整数。同样,我们可以有
[F for one-dimensional float arrays
[Z for one-dimensional boolean arrays
[J for one-dimensional long arrays
[[I for two-dimensional int arrays
等等。