I am relatively new to java, so forgive me if this question might seem "Silly". I know that the JVM (Java Virtual Machine) is contained within the JRE (Java Runtime Environment) but I am not sure if the classloader and Execution Engine are part of the JVM.
Most sources that I have read did not specify this. Instead, when describing the components of the JVM they only discuss the 5 components of the Runtime Data Area (i.e. Heap, JVM Stack, Method Area, PC Registers and Native Method Stack). Although my common sense tells that for it to be a complete Virtual Machine it needs the input, Memory & processing, I still need to verify the exact locations of these components.
Extension ClassLoader: The Extension ClassLoader is a child of Bootstrap ClassLoader and loads the extensions of core java classes from the respective JDK Extension library. It loads files from jre/lib/ext directory or any other directory pointed by the system property java.
A Java Class is stored in the form of byte code in a . class file after it is compiled. The ClassLoader loads the class of the Java program into memory when it is required. The ClassLoader is hierarchical and so if there is a request to load a class, it is delegated to the parent class loader.
That is, the context class loader can load the classes that the application can load. This loader is used by the Java runtime such as the RMI (Java Remote Method Invocation) to load classes and resources on behalf of the user application.
Based on Classloader wikipedia there are 3 types of classloaders in JRE:
This class loader, which is part of the core JVM, is written in native code
It is implemented by the sun.misc.Launcher$ExtClassLoader class
This is implemented by the sun.misc.Launcher$AppClassLoader class
So i think in conclusion: first one is in JVM the other 2 is in JRE libraries.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With