After my deep analysis this is how i have understand about JDK, JRE and JVM. Please correct me if i am wrong...
JVM is virtual, you can think of it as a virtual computer whose machine code is the Java bytecode. It is not a real computer but a virtual one which can execute Java bytecode instructions.
JRE is the JVM implementation. The implementation is OS-specific (of course) but it provides OS-independent outer interface (meaning e.g. you can run same Java code on a Windows JRE and on a Linux JRE). This is the 'write-once-run-anywhere' thing from the late 90s.
JDK is the compiler, the JRE, other tools, and all Java APIs you need to write Java code.
I don't want to add Android and its Dalvik VM to the picture (though I can draw some interesting parallels), as I will confuse you more, I think.
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