数组实现为java中的对象吗?如果是这样,我在哪里可以查看数组类的源代码。我想知道数组中的长度变量是否定义为常量,如果是这样,为什么它不是所有大写字母LENGTH使代码更容易理解。
答案 0 :(得分:19)
虽然数组是继承java.lang.Object的意义上的对象,但这些类是作为该语言的特殊功能动态创建的。它们没有在源代码中定义。
考虑这个数组:
MySpecialCustomObject[] array;
没有这样的源代码。您已在代码中动态创建它。
长度为小写的原因和字段实际上是关于后来的Java编码标准在开发时不存在的事实。如果今天正在开发一个数组,它可能是一个方法:getLength()。
长度是在对象构造中定义的最终字段,它不是常量,因此一些编码标准不希望它是大写的。但是一般来说,在今天的Java中,一般都是以大写形式作为常量完成,或者使用公共getter方法标记为private,即使它是最终的。
答案 1 :(得分:0)
对于我们声明的每个Array,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
以此类推。
答案 2 :(得分:-1)
在Java中实现数组需要访问内存位置或执行指针算术。由于Java不允许您分配内存,因此它会为您执行Arrays实现。 Java语言提供了该实现。
答案 3 :(得分:-2)
我们可以说,数组是一个容器,它包含固定长度的单一数据类型的数据。 例如。
int[] MyArray = new int[101]; // allocates memory for 101 integers, Range from 0 to 100.
和多维
String[][] names = {{"FirstName", "LastName"},{"Kaji", "Islam"},...};
和字符数组
char[] ch={'a','b'....};