2020-08-17,学习小计
以前都是看别人博客,今天散记自己的学习当天内容,一遍自己复习,对其他人应该没有学习价值,因为我的语言随意组织的,不过我感觉挺通俗易懂的。第一次使用Markdown编辑器有些慌张。2020-08-17。
浅克隆和深克隆
今天重新复习了一下Java中浅克隆和深克隆的知识,面试和日常开发使用,因为自己是菜鸟,场景知道的很少。废话不多说直接说:都在内存中开辟新空间,static和transient修饰的属性不背克隆。
- 浅克隆 :要求克隆对象类必须实现Cloneable接口,然后调用clone()方法,注意:这个方法是继承自Object类的,并不是Cloneable接口的,至于为什么,因为clone()方法定义为native的,jvm层面的吧,反正我暂时是这么理解;通过浅克隆的到的新对象,基本类型,变化其中一个,另一个不影响,但是被克隆对象里面的成员变量是引用类型,则共用,就是说,改变其中任意一个对象的引用属性的值,另一个也随着变化。
- 深克隆:序列化的一种方式,要求被克隆对象实现Serializable接口,该接口中其实什么属性什么方法都没有。通过对象输出流和输入流,克隆一个新对象,这时该新对象就完全独立为一个新对象了,其内的引用属性也不会随着另一个变化而变化了。
个人认为该内容较详细链接: 此链接失效了,还是没玩明白….
本文深入探讨了Java中浅克隆和深克隆的区别及应用场景。浅克隆仅复制对象的基本类型属性,对于引用类型则共享同一实例;深克隆通过序列化创建对象的完整副本,确保对象间的独立性。
464

被折叠的 条评论
为什么被折叠?



