没有新的对象实例?

时间:2010-07-02 08:41:26

标签: java oop constructor instantiation

我们知道我们可以通过使用classloader / object cloning / object serialization来实例化一个没有new关键字的对象。当我使用这些技术创建一个对象时,构造函数是否被调用?

2 个答案:

答案 0 :(得分:4)

对于Object.clone,不会调用任何构造函数。

对于序列化,调用派生程度最大的非可序列化基类no-arg构造函数。通常通过加载不验证的字节码来实现。最基本的可序列化类必须可以访问构造函数。

答案 1 :(得分:1)

据我所知,三者都使用构造函数甚至序列化。

http://java.sun.com/j2se/1.4.2/docs/api/java/io/Serializable.html

  

只有当它扩展的类具有可访问的no-arg构造函数来初始化类的状态时,子类型才可以承担此责任。如果不是这种情况,则声明一个Serializable类是错误的