克隆和序列化与使用"新"和反射有何不同?

Sun*_*pta 2 java conceptual

当我读到"在多少方面我们可以在java中创建一个对象"时.

我找到了四种方式:

  1. 使用新操作符创建对象.
  2. 克隆
  3. 序列化
  4. 反射.

有了新的和反思,我对这两种方法很好.

我的问题是:

为什么人们将克隆和序列化视为创建对象的不同方式?

Mar*_*nik 7

这里非常重要的一点是,在对象反序列化中,没有构造函数参与进程 - 这就是为什么它是创建对象的独特方式.克隆也是如此 - 该方法Object.clone通过JVM魔术创建一个新对象,同样不涉及任何构造函数.事实上,这两种方式new和另一方面的反射之间存在更大的差异,因为反射只是一种稍微不同的方式来调用涉及特定构造函数的普通对象实例化.