Q&A
Q&AHow does the JVM class-loading lifecycle work?
Loading, linking, and initialization are distinct phases managed by class loaders.
Read the concise answer
A class loader locates and defines bytecode; linking verifies it, prepares class storage, and resolves symbolic references as needed; initialization runs static initialization in the specified order. Parent delegation is common but custom loaders can change identity: classes with the same name loaded by different loaders are distinct runtime types. Class-loader leaks often arise when long-lived references retain an application loader after redeployment.