科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道JAVA对象复制与比较

JAVA对象复制与比较

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

一般来说, 用户自己定义的类也应当提供合适的equals() 方法, 特别是当程序要将其对象放入JAVA API 所提供的对象容器类的时候。

2008年2月13日

关键字: 比较 复制 对象 java

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共2页)

1.对象的复制

  2.clone()的使用

  3.对象实例的比较

  ////////////////////

  //

  /////////////////////

  1.对象的复制

  String str1 = "This is a string!" //这里是 "对象引用" 的复制

  String str2 = new String(str1); //这里是 "对象实例" 的复制

  浅复制: 只复制复合对象本身.

  深复制: 除了复制复合对象本身, 还复制了复合对象的引用的对象实例.

  例如:

  class Pupil{

  public Pupil(String sno, String name, int age){

  this.sno = new String(sno);

  this.name = new String(name);

  this.age = age;

  }

  public String getSno() {

  return sno;

  }

  public String getName() {

  return name;

  }

  public int getAge() {

  return age;

  }

  public void setAge(int age) {

  this.age = age;

  }

  private String sno;

  private String name;

  private int age;

  }

  public class CopyDemo {

  public static Pupil[] shallowCopy(Pupil[] aClass) {

  Pupil[] newClass = new Pupil[aClass.length];

  //此时newClass 与aClass 指向同一块内存

  for(int i=0; i

  newClass[i] = aClass[i];

  return newClass;

  }

  public static Pupil[] deepCopy(Pupil[] aClass) {

  Pupil[] newClass = new Pupil[aClass.length];

  //此时newClass 与aClass 的相应sno , name 指向同一块内存

  for(int i=0; i

  String sno = aClass[i].getSno();

  String name = aClass[i].getName();

  int age = aClass[i].getAge();

  newClass[i] = new Pupil(sno, name, age);

  }

  return newClass;

  }

  public static Pupil[] deeperCopy(Pupil[] aClass) {

  Pupil[] newClass = new Pupil[aClass.length];

  //完全的复制

  for(int i=0; i

  String sno = new String(aClass[i].getSno());

  String name = new String(aClass[i].getName());

  int age = aClass[i].getAge();

  newClass[i] = new Pupil(sno, name, age);

  }

  return newClass;

  }

  }

  2.clone()的使用

  * Object.clone()

  * Cloneable 接口

  * CloneNotSupportedException

  a. 使用Object.clone 进行复制
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章