有的时候,创建一个对象可能会非常耗时,比如对象需要从远程数据库中获取数据来填 充,又或者创建对象需要读取硬盘文件。此时,如果已经有了一个对象,再创建新对象时, 可能会采用复制现有对象的方法,而不是重新建一个新的对象。
1.3.1 浅度复制
浅度复制和深度复制是以如何复制对象的成员来区分的。对象的成员有可能是值类型, 有可能是引用类型。当对对象进行一个浅度复制的时候,对于值类型成员,会复制其本身 (值类型变量本身包含了所有数据,复制时进行按位复制);对于引用类型成员(注意它实 际只是一个对象引用,指向了堆上的对象实例),仅仅复制引用,而不在堆上重新创建对 象。因此,浅度复制结果就是:新对象的引用成员和复制对象的引用成员指向了同一个对 象。