Cloneable

简介: 1.Object.clone() protected native Object clone() throws CloneNotSupportedException; 创建并返回这个对象的拷贝。注意它的权限是protected的,所以不能直接用。 注意它是native方法,所以比直接new对象效率高。 2.接口 public interface Cloneable {} 此接

1.Object.clone()

protected native Object clone() throws CloneNotSupportedException;

创建并返回这个对象的拷贝。

注意它的权限是protected的,所以不能直接用。

注意它是native方法,所以比直接new对象效率高。

2.接口

public interface Cloneable {}

此接口不包含任何方法,是给jvm看的。

3.使用

实现Cloneable接口,并重写clone()方法,注意权限要改为public。注意要调用super.clone()。

效果为创建一个新对象,然后逐字段地拷贝,由jvm实现。对于引用类型,jvm只帮你浅拷贝,需要深拷贝的话还得自己实现。

在重写equals()方法后,效果为 x.clone() != x成立,x.clone().equals(x)成立。

例子:


目录
相关文章
|
29天前
|
存储 Java
|
11月前
|
Java
Cloneable
Cloneable
28 0
|
Java
【Java】深拷贝和浅拷贝,Cloneable接口
【Java】深拷贝和浅拷贝,Cloneable接口
180 0
【Java】深拷贝和浅拷贝,Cloneable接口
|
Java C++
Java 匿名内部类与嵌套类
Java 匿名内部类与嵌套类
Java 匿名内部类与嵌套类
|
存储 缓存 安全
Java之实现Serializable接口的类,transient关键字
Java之实现Serializable接口的类,transient关键字
122 0
Java之实现Serializable接口的类,transient关键字
|
Java 开发者
HashSet 子类|学习笔记
快速学习 HashSet 子类
124 0
HashSet 子类|学习笔记
|
存储 Java 开发者
LinkedHashMap 子类|学习笔记
快速学习 LinkedHashMap 子类
118 0
LinkedHashMap 子类|学习笔记
|
存储 Java 开发者
ArrayList 子类| 学习笔记
快速学习 ArrayList 子类
123 0
ArrayList 子类| 学习笔记
|
JSON Java 数据格式
Java - 关于 Cloneable 接口 clone 方法(二)
Java - 关于 Cloneable 接口 clone 方法(二)
103 0
Java - 关于 Cloneable 接口 clone 方法(二)
一篇文章带你了解cloneable接口、浅拷贝、深拷贝
我们都知道想要实现拷贝需要实现Cloneable接口并在类中实现clone()方法,不过比较神奇的是,clone()方法并不是Cloneable接口中的方法。 Cloneable接口是一个空接口,里面没有任何内容