Creation process of java object:
Class loading check --> Allocate memory --> Initialize zero value --> Set object header -->Execute the init method
The details are as follows:
1. Class loading check
When the virtual machine encounters a new instruction, it first checks the parameters of this instruction. Can you locate the symbolic reference of a class in the constant pool, and check whether the class represented by this symbolic reference has been loaded, parsed and initialized by ji. If not, the class loading process is performed first.
(Video tutorial recommendation: java video)
2. Allocate memory
There are two ways:
(1) Pointer collision: Assume that the memory in the Java heap is regular, with used memory on one side and free memory on the other side. There is a pointer in the middle as an indicator of the demarcation point. The allocated memory moves that pointer to the free side. A distance equal to the size of the object.
(2) Free list: If the memory in the Java heap is not regular, the virtual machine must maintain a list to record which memory blocks are available, and find a large enough space from the list to allocate it to the object when allocating , and update the records of the list.
3. Initialize zero value
Initialize the allocated memory space to zero value. If TLAB is used, it will be initialized to zero value when TLAB is allocated.
4. Set the object header
Mainly set the metadata information of the class, the hash code of the object, the GC generation age of the object and other information.
5. Execute the init method initialization.
Recommended tutorial: Getting started with java development
The above is the detailed content of What is the creation process of java objects. For more information, please follow other related articles on the PHP Chinese website!