java中给用数组名直接给另一数组赋值是怎么回事呀?我知道两数组长度可以不相同,可是不知道类型是不是要求一致(我知道相同类的对象间可以直接赋值),其内在机制是什么呀,敢问各位大虾!小弟谢过。

 

还是用例子来说话吧:

比如
A a[];//声明一个数组引用,它指向的数组的元素必须是A型或者A的子类型。
a=new A[10];//创建一个A类型数组,并且让引用a指向这个数组。
A=new B[100];//创建一个B类型数组,并且让引用a指向这个数组,这个时候B必须是A的子类,否则编译不通过。
从上面看到,长度是在数组被创建时才指定的。数据引用本身只知道自己指向的是什么类型的数组。

实际上,java的数组和对象有着许多相似的地方,完全可以把数组当作对象来看。长度length不过是数组的一个属性,不同的数组对象此属性可相同也可以不同。
对象的引用之间,只要类型相同,就可以相互赋值,数组也是这样的。