当我读到“我们可以用多少种方式在java中创建一个对象”时。
我找到了四种方法:
使用新运算符创建对象的
有了新的和反思的,我对这两种方法没有意见。
我的问题是:
为什么人们认为克隆和序列化是创建对象的不同方式?
发布于 2012-05-10 19:14:35
当您克隆一个对象时,这意味着您处理的是内存中与原始对象不同的部分。是的,它们可能具有相同的属性,但它们是两个不同的指针,具有两个不同的内存块。
当您取消对象序列化时,就会存在以前不存在的对象。即使您序列化然后立即取消序列化,它也将独立于原始对象存在。
发布于 2012-05-10 19:17:14
这里非常重要的一点是,在对象反序列化过程中存在,没有构造函数 --这就是为什么它是创建对象的独特方法的原因。克隆也是如此-- Object.clone通过JVM魔术创建了一个新对象,同样不涉及任何构造函数。事实上,这两种方法与new和反射有很大的区别,因为反射只是调用普通对象实例化的一种稍微不同的方式,涉及特定的构造函数。
https://stackoverflow.com/questions/10540647
复制相似问题