人生最曼妙的风景,竟是内心的淡定与从容!
1、Java中并不存在任何一个类对应数组,数组属于Java语言的一部分。2、数据是特殊的对象,本身就实现了Cloneable。Object的clone方法的javadoc中有这么一句Note that all arrays are considered to implement the interface Cloneable ,所以数组是可以直接使用clone方法的。3、数组对象天生就有一个final的length属性,因为数组并没有定义在任何一个类中,所以没有源码。
Cloneable
Object
clone
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这又超出了我们的认知
1、Java中并不存在任何一个类对应数组,数组属于Java语言的一部分。
2、数据是特殊的对象,本身就实现了
Cloneable
。Object
的clone
方法的javadoc中有这么一句Note that all arrays are considered to implement the interface Cloneable ,所以数组是可以直接使用clone
方法的。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
这又超出了我们的认知