After loading, the class file is separated into the static part and the other parts, and each is saved in a different memory area.
Members qualified with static are placed in the static area, and other definitions are placed in the metaspace area (native memory).
--When an instance is created, ** the instance area is secured in the heap area according to the class definition in the metaspace area ** -** Static fields can be used without instantiation ** --Write "class name.field name" to access static fields. Or create an instance and access it using that reference. --Static members can be used without an instance, while non-static members cannot be used without an instance. Therefore, ** static methods cannot access non-static members ** --Conversely, it is possible to access static members from non-static methods
Thorough capture Java SE11 Silver problem collection