Java对象拷贝的深拷贝和浅拷贝有何区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2993个文字,预计阅读时间需要12分钟。
基本类型复制:布尔值是针对对象的,基本类型(如boolean、char、byte、short、float、double、long)已具备自身独立的特性。示例代码:
javaint x=1;int y=x;System.out.println(x); // 输出:1
// y=2; // 注释掉,避免改变x的值// System.out.println(y); // 注释掉,避免改变x的值
System.out.println(x); // 输出:1
基本类型拷贝:
克隆是针对于对象而言的,基本类型(boolean,char,byte,short,float,double.long)已久具备自身克隆的特性.
int x=1;int y=x;
System.out.println(x);//1
System.out.println(y);//1
y=2;
System.out.println(x);//1
System.out.println(y);//2
JVM实现拷贝的目的:
大家先思考一个问题,为什么需要克隆对象?直接 new 一个对象不行吗?
答案是:克隆的对象可能包含一些已经修改过的属性,而 new 出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的 “状态” 就靠 clone 方法了。
本文共计2993个文字,预计阅读时间需要12分钟。
基本类型复制:布尔值是针对对象的,基本类型(如boolean、char、byte、short、float、double、long)已具备自身独立的特性。示例代码:
javaint x=1;int y=x;System.out.println(x); // 输出:1
// y=2; // 注释掉,避免改变x的值// System.out.println(y); // 注释掉,避免改变x的值
System.out.println(x); // 输出:1
基本类型拷贝:
克隆是针对于对象而言的,基本类型(boolean,char,byte,short,float,double.long)已久具备自身克隆的特性.
int x=1;int y=x;
System.out.println(x);//1
System.out.println(y);//1
y=2;
System.out.println(x);//1
System.out.println(y);//2
JVM实现拷贝的目的:
大家先思考一个问题,为什么需要克隆对象?直接 new 一个对象不行吗?
答案是:克隆的对象可能包含一些已经修改过的属性,而 new 出来的对象的属性都还是初始化时候的值,所以当需要一个新的对象来保存当前对象的 “状态” 就靠 clone 方法了。

