原型模式的作用,简化new一个对象的繁琐复杂的过程。
BeanUtils.copy()
JSON.parseObject()
都是原型模式。
返回结果false,可以看出t1t2的地址不同,只是将里面的属性值复制给了t2,但真的是这样么?
发现,当改变t2的classmate的时候,t1也随之改变了。
这里引出一个概念,浅克隆与深克隆。
浅克隆与深克隆的区别在于非基本对象的赋值时,浅克隆时赋值的地址。深克隆则是也只是复制对象内容而不是指向的地址。
可以采用流的方式完成深克隆
返回结果:
这样就能完成深克隆了!