潜拷贝和深拷贝
深浅拷贝是对应一个对象来说的。 对于基本数据类型来说,都是值传递;而对于一个对象来说,其内部的基本类型都是值传递,潜拷贝传递的是对象的引用,而深拷贝传递的是一个新的对象。要实现深拷贝必须重写 clone() 函数。
equals 和 ==
对于基本数据类型来说使用 == 足够了,比较的是值。 对于引用数据类型,采用 == 进行比较,比较的是其在内存中存放的地址。这样如果深拷贝了一个对象,那么 == 结果就会是 false,但这并不是我们要的结果,这时候就需要使用 equals() 方法。
JAVA 中所有类都是继承 Object 类,Object 类中定义了 equals 方法,默认行为比较的是对象的内存地址。