Get the App
SLTechnology News&Howtos  ›  Internet Technology  › 

What is the JVM class loading mechanism?

Shulou Source: shulou.com Published: 2022-06-02 01:30:35 10月22日 Update

This article shows you how the JVM class loading mechanism is, the content is concise and easy to understand, can definitely brighten your eyes, through the detailed introduction of this article, I hope you can get something.

1. Java class loading and running process

Load: load a bytecode file, write class information to the method area, and generate a java.lang.Class object

Validating: checking bytecode fil

Prepare: allocate memory to static variables and assign default values

Parsing: replacing symbolic references with direct references

Initialization: assign initialization values to static variables and execute static code blocks

two。 Parent appointment training mechanism

1) parent delegation model of class loader

When no classloader is specified, the default classloader for jvm is AppClassLoader

Advantages: a. To prevent core API from being tampered with, b. Prevent classes from being re-loaded

2) ClassLoader source code

Java.lang.ClassLoader

Protected Class loadClass (String name, boolean resolve) throws ClassNotFoundException {synchronized (getClassLoadingLock (name)) {/ / check whether the current class has been loaded Class c = findLoadedClass (name); if (c = = null) {long t0 = System.nanoTime () Try {if (parent! = null) {/ / parent classloader attempted to load c = parent.loadClass (name, false);} else {/ / boot classloader load c = findBootstrapClassOrNull (name) }} catch (ClassNotFoundException e) {} if (c = = null) {/ / parent class loader is not loaded, then call its own findClass to load the class c = findClass (name);}} if (resolve) {resolveClass (c) } return c;}} the above is what the JVM class loading mechanism is like. Have you learned any knowledge or skills? If you want to learn more skills or enrich your knowledge reserve, you are welcome to follow the industry information channel.

Tags: Mechanisms static content parents variables bytes skills files knowledge concise concise code advantages memory then objects that is articles methods more Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Microsoft Redmi Shulou Tech Info NVidia MariaDB