浅拷贝和深拷贝的方法java,java 深浅拷贝

  浅拷贝和深拷贝的方法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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: