在Java中,数组作为对象的语义是什么?

在Java中,数组作为对象的语义是什么?,java,arrays,object,Java,Arrays,Object,根据这个问题(),数组在Java中被视为对象 这个问题的答案主要引用语言规范。我的问题是这个对象有哪些方法和字段?我可以直接实例化它吗(int[]myArr=new Array(),或者类似的东西)?简而言之,它是如何工作的 快速搜索没有结果。我看到了数组对象的JavaDoc(用于排序数组等),但没有看到数组的JavaDoc 编辑: 我想说清楚,我不是第一次尝试学习使用数组。我在问一个关于java语言机制的问题。我知道我可以创建一个数组: int[] a = new int[3]; 我在问是否

根据这个问题(),数组在Java中被视为对象

这个问题的答案主要引用语言规范。我的问题是这个对象有哪些方法和字段?我可以直接实例化它吗(
int[]myArr=new Array()
,或者类似的东西)?简而言之,它是如何工作的

快速搜索没有结果。我看到了
数组
对象的JavaDoc(用于排序数组等),但没有看到
数组
的JavaDoc

编辑:

我想说清楚,我不是第一次尝试学习使用数组。我在问一个关于java语言机制的问题。我知道我可以创建一个数组:

int[] a = new int[3];

我在问是否有不同的方法来实现它——因为它是一个对象,是否有一个对象构造函数可以工作?是否有关于数组对象的文档?

数组具有公共final
length
属性。它们实现了
Cloneable
Serializable
接口。当然,它们从
Object
继承所有方法(
equals()
hashCode()
wait()
,等等)

当您试图回答问题时,没有可以用来构造实例的类。实例化它们的语法是

int[] myArr = new int[someLength];
或者,用非默认值填充它们

int[] myArr = new int[] {1, 2, 3};
你也可以使用

int[] myArr = {1, 2, 3};
但是请注意,您不能使用这个简短的语法为以前声明的变量赋值。也就是说,你能做到

myArr = new int[] {1, 2, 3};
但不是

myArr = {1, 2, 3};

可以用与任何其他类的对象类似的方式声明数组

如果在声明时不确定数组的大小,那么可以这样做---


摘自波佐对类似问题的回答

数组是一种语言特性,它们具有特定的语法 声明和访问。并且它们的类定义是隐藏的 你

它们在reflecitonapi中有一个表示- java.lang.reflect.Array


你链接的问题的答案中有什么不清楚的地方?有一种直接实例化数组的语法。请参阅我的编辑。我不是在问如何制作数组,我是在问语言特性数组的行为被写入语言而不是类+1我知道我可以这样做-我是在问是否有其他方法来做,通过调用一个对象构造函数。我的答案是:当你试图回答问题时,没有类可以用来构造一个实例。因为没有类,所以不能调用它的构造函数。一个重要的区别是数组确实有一个类。不能使用它来实例化数组的事实主要是语言/运行时的一个怪癖,而不是缺少这样一个类的结果。
class ArrayExample
{
int arr[];
public static void main()
{
//take length as input from the user
arr=new int[anylength];
//now do whatever you want to do with this array object
}
}