1、Java中并不存在任何一个类对应数组,数组属于Java语言的一部分。 2、数据是特殊的对象,本身就实现了Cloneable。Object的clone方法的javadoc中有这么一句Note that all arrays are considered to implement the interface Cloneable ,所以数组是可以直接使用clone方法的。Cloneable。Object的clone方法的javadoc中有这么一句Note that all arrays are considered to implement the interface Cloneable ,所以数组是可以直接使用clone方法的。 3、数组对象天生就有一个final的length3、数组对象天生就有一个final的length属性,因为数组并没有定义在任何一个类中,所以没有源码。
1、Java中并不存在任何一个类对应数组,数组属于Java语言的一部分。
2、数据是特殊的对象,本身就实现了
Cloneable
。Object
的clone
方法的javadoc中有这么一句Note that all arrays are considered to implement the interface Cloneable ,所以数组是可以直接使用clone
方法的。Cloneable
。Object
的clone
方法的javadoc中有这么一句Note that all arrays are considered to implement the interface Cloneable ,所以数组是可以直接使用clone
方法的。3、数组对象天生就有一个
final
的length
3、数组对象天生就有一个final
的length
属性,因为数组并没有定义在任何一个类中,所以没有源码。Java的数组就是数组,没有类与之对应。
数组所使用的clone()并非一定要类才能拥有呀,只要编译器提供了这种语法,一样可以实现。
同样的,数组的length也是编译器解析出来的数组属性,并非由Java实现,也自然看不到Java的源码。
Class c = int[].class;
System.out.println(c.getPackage());
System.out.println(c.getName());
System.out.println(Modifier.toString(c.getModifiers()));
可以这么理解:
数组类是一组特殊的类,由JVM运行时动态生成,包括它的length属性及其它方法实现
除了int[], boolean[] 这种数组外,
还包含用户自定义类型的数组, 比如 com.yourPackage.YourClass[] 这种格式的数组,以及2维,3维..多维数组
有个有意思的输入结果
int[]类的修饰符是 public abstract final
这又超出了我们的认知