Как объект сериализованного класса создается динамически без вызова конструктора при десериализации в Java? - PullRequest
2 голосов
/ 26 марта 2012

Как объект сериализованного класса создается динамически без вызова конструктора при десериализации в Java? Какой механизм используется JVM для создания экземпляра объекта?

1 Ответ

2 голосов
/ 26 марта 2012

Это зависит от JVM, но Sun / Oracle / OpenJDK использует sun.misc.Unsafe.allocateInstance (Class)

   /** Allocate an instance but do not run any constructor.
       Initializes the class if it has not yet been. */
   public native Object allocateInstance(Class cls)
       throws InstantiationException;

http://www.docjar.com/html/api/sun/misc/Unsafe.java.html

Это позволяет создаватьновые экземпляры всего, например, перечисления, но не новые экземпляры класса.

...