Life cycle: Class loading->Connection->Initialization->Use->Unloading.
(Recommended tutorial:java introductory tutorial)
Detailed introduction:
1. Class loading
Find and load the class Binary data (referring to class files), commonly known as loading class files on the hard disk into jvm memory
2. Connection: Determine the relationship between classes; such as person.setAddress(address) person An address object is nested in the object
Verification: Correctness check
Preparation: static static variables allocate memory and assign initialization default values .
For example, static int num=10;
In the preparation stage, set num=0, and then change 0 to 10. In the preparation phase, num will only be assigned a value of 0. JVM only has classes, not objects.
Initialization sequence: static->non-static->Construction method
public class Student{ static int age;//In the preparation phase, age=0
String name;
}
After loading the class, the program only has the student class, no student object, and the sentence Student s=new Student()
Analysis: Convert the symbol reference in the class into a direct reference
In the early stage, the specific memory address of the class is not yet known, so com.pojo.Student can only be used instead of the student class.
com.pojo.Student becomes a symbolic reference;
In the parsing phase, jvm can map com.pojo.Student to the actual memory address, and then use the memory address to replace Student. This uses the memory address The way to use the class is to directly reference
(Video tutorial recommendation:java video tutorial)
3. Initialization:
For example, static int num=10;
In the preparation phase, num=0, and then (after the initialization phase) change 0 to 10.
4. Usage: Object initialization, object garbage collection, object destruction
5. Uninstallation:
JVM end life cycle timing:
Normal end
Abnormal end, error
System.exit()
Operating system exception
The above is the detailed content of Introduction to the life cycle of java classes. For more information, please follow other related articles on the PHP Chinese website!