JVM (1) JVM Internals : What does JVM do?
Some basic concepts:
What is the difference between JVM, JRE, and JDK
JVM: Java Virtual Machine
It Provides Runtime Environment in which Java bytecode can by executed,
Tasks of JVM : Loads Code
Verifies Code
Executes Code
Provides Runtime Environment
JVM is platform dependent, i.e for each software and hardware we have different JVM configuaration
JVM does not exists physically, it is abstract in nature.
JRE: It stands for Java Runtime Environment.
JRE-> JVM + Set of libraries
It is the implementation of JVM
To run any java code JRE is minimum required.
JRE contains set of libraies that JVM uses at runtime
JRE physically exists.
JRE is platform dependent.
JDK:
JDK stands for Java Development Kit
JDK -> JRE+Development Tools
it is a full featured Software Development Kit
It contains JRE+Development Tools (Debugger + Compiler + JavaDoc etc)
To Conclude :
JVM Internals : What does JVM do?
when we write and execute a java code, below are some of the common way we do that.
And below is how JVM instance load and excecute our class files.
Class Load is responsible for loading our .class file , which in above example is MyApp.class, it is also responsible for loading some of the built-in .class files
Class Loading SubSystem has three main faces:
Load: 1. Bootstrap class Loader
2. Extension Class Loader
3. Application Class Loader
Link: 1. Verify:
2. Prepare:
3. Resolve:
Initialize