随笔

99 阅读1分钟

随笔

浅拷贝和深拷贝

慎用 Object 的 clone 方法来拷贝对象。

阿里巴巴Java开发手册

class Student{
  private String id;
  private String name;
}
  • 当只有一层的时候浅拷贝=深拷贝
  • 当有多层的时候浅拷贝只拷贝第一层

关于 hashCode 和 equals 的处理

【强制】关于 hashCode 和 equals 的处理,遵循如下规则: 1) 只要重写 equals,就必须重写 hashCode。 2) 因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的 对象必须重写这两个方法。 3) 如果自定义对象做为 Map 的键,那么必须重写 hashCode 和 equals。 正例:String 重写了 hashCode 和 equals 方法,所以我们可以非常愉快地使用 String 对象 作为 key 来使用。

阿里巴巴Java开发手册