Object[] o = new Object[]{};
System.out.println(o instanceof Cloneable);
这将输出 true。我不明白为什么会这样?
Object[] o = new Object[]{};
System.out.println(o instanceof Cloneable);
Java中的所有数组都是可克隆和可序列化的。
对数组进行克隆只会复制数组本身(浅拷贝,不会克隆数组内容)。
数组支持(浅层)克隆。
来自JLS第10.7节:
数组类型的成员包括以下所有内容:
- 公共 final 字段 length,包含数组组件的数量(length 可以是正数或零)。
- 公共方法 clone,它重写了 Object 类中同名的方法,并且不会抛出已检查异常。数组类型 T[] 的 clone 方法的返回类型是 T[]。
- 从类 Object 继承的所有成员;唯一没有继承的 Object 方法是其 clone 方法。
和
每个数组都实现了接口 Cloneable 和 java.io.Serializable。