浅拷贝和深拷贝的方法java,java 深浅拷贝
1、什么叫Java浅拷贝?
浅拷贝是会将对象的每个属性进行依次复制,但是当对象的属性值是引用类型时,实质复制的是其引用,当引用指向的值改变时也会跟着变化。
2、什么叫Java深拷贝?
深拷贝复制变量值,对于引用数据,则递归至基本类型后,再复制。深拷贝后的对象与原来的对象是完全隔离的,互不影响,对一个对象的修改并不会影响另一个对象。
相关视频教程推荐:java在线视频
3、Java浅拷贝和深拷贝的区别是什么?
通俗来讲浅拷贝的复制其引用,当引用指向的值改变时也会跟着变化;而深拷贝则是与原来的对象完全隔离,互补影响。
4、思维导图
写爬虫互联网协议(互联网协议)被封了怎么解决?立即使用
5、测试用例分析
浅拷贝测试用例
公开课浅薄的经历{
私弦技能;
公共void setSkill(字符串技能){
this.skill=技能;
}
public void setShallowExperience(字符串技能){
this.skill=技能;
}
@覆盖
公共字符串toString() {
回归技能;
}
}
公共类浅层克隆试验实现可克隆的{
私人年龄;
私人的浅薄的经验;
公共浅层克隆测试(){
this.age=10
这个。浅经验=新浅经验();
}
公共短经验获取经验(){
回报浅经验;
}
public void setShallowExperience(字符串技能){
浅薄的经历。集浅薄经验(技能);
}
公共void show() {
系统。出去。println(浅薄的经验。tostring());
}
public int getAge() {
回归年龄;
}
@覆盖
受保护对象克隆()引发CloneNotSupportedException {
return(ShallowCloneTest)超级。clone();
}
}
公共类TestMain {
公共静态void main(String[] args)引发CloneNotSupportedException {
System.out.println(======浅拷贝======);
shallowCloneTest();
}
/**
* 浅拷贝测试用例
*
* @ throws CloneNotSupportedException
*/
私有静态void shallowCloneTest()抛出CloneNotSupportedException {
ShallowCloneTest test=new ShallowCloneTest();
test.setShallowExperience(我是小明,我精通Java,C的复制粘贴);
测试。show();
ShallowCloneTest克隆测试=(ShallowCloneTest)测试。clone();
克隆试验。show();
cloneTest.setShallowExperience(我是小明的副本,我精通Java,C’);
克隆试验。show();
测试。show();
系统。出去。println(克隆测试。getage());
}
}
//运行结果
======浅拷贝======
我是小明,我精通Java,C的复制粘贴
我是小明,我精通Java,C的复制粘贴
我是小明的副本,我精通Java,C
我是小明的副本,我精通Java,C
10深拷贝测试用例
公共类深度体验实现可克隆的{
私弦技能;
公共void setSkill(字符串技能){
this.skill=技能;
}
public void setDeepExperience(字符串技能){
this.skill=技能;
}
@覆盖
公共字符串toString() {
回归技能;
}
@覆盖
受保护对象克隆()引发CloneNotSupportedException {
返回超级棒。clone();
}
}
公共类深度克隆试验实现可克隆的{
私人年龄;
私人深度体验
公共DeepCloneTest() {
this.age=10
这个。深度体验=新深度体验();
}
大众深度体验get experience(){
返回深度体验
}
public void setDeepExperience(字符串技能){
深有体会。setdeepexperience(技能);
}
公共void show() {
系统。出去。println(深度体验。tostring());
}
public int getAge() {
回归年龄;
}
@覆盖
受保护对象克隆()引发CloneNotSupportedException {
DeepCloneTest DeepCloneTest=(DeepCloneTest)super。clone();
deepclonetest。深度体验=(深度体验)deepclonetest。获取经验().clone();
返回深度克隆试验
}
}
公共类TestMain {
公共静态void main(String[] args)引发CloneNotSupportedException {
System.out.println(======深拷贝======);
deepCloneTest();
}
/**
* 深拷贝测试用例
*
* @ throws CloneNotSupportedException
*/
私有静态void deepCloneTest()抛出CloneNotSupportedException {
DeepCloneTest test=new DeepCloneTest();
test.setDeepExperience(我是小明,我精通Java,C的复制粘贴);
测试。show();
DeepCloneTest克隆测试=(DeepCloneTest)测试。clone();
克隆试验。show();
cloneTest.setDeepExperience(我是小明的副本,我精通Java,C’);
克隆试验。show();
测试。show();
系统。出去。println(克隆测试。getage());
}
}
//运行结果
======深拷贝======
我是小明,我精通Java,C的复制粘贴
我是小明,我精通Java,C的复制粘贴
我是小明的副本,我精通Java,C
我是小明,我精通Java,C的复制粘贴
10相关文章教程推荐:java零基础入门以上就是爪哇岛中的浅拷贝与深拷贝的详细内容,更多请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。