Skip to main content

JDK(Java Development Kit) What and Why?


You will get a memorable calculation among three:

  • JDK(Java Development Kit)
  • JRE(Java Runtime Environment)
  • JVM(Java Virtual Machine)

Let's take a sip of JVM first.
JVM(Java Virtual Machine) came into existence to provide Platform Independence to Java.

When Java compiler generates Bytecode, OS doesn't know anything about Bytecode because it is Java's self-created code. OS cannot execute it.
So, Java needed a Machine to execute it's Bytecode, to fulfill this need  JVM came. JVM provides an environment for the survival of Bytecode.

Remember that, JVM is platform dependent i.e. for every OS there is different JVM.

But there is a difference in old technologies and Java. Before Java, other technologies had not been allowed to make their compiler for every OS. Like Microsoft had not been allowed Linux or Unix to develop their Visual Basic's compiler.  But SunMicrosystem made this possible. SunMicrcosystem first developed a unique compiler(javac) and allow any OS to develop JVM.

Now JVM making is damn easy rather compiler. Sunmicrosystem provides JVM making code to OS vendors. OS vendor just added their OS-specific code and a working JVM is ready, Really how easy is that.
Note: Because  Sunmicrosystem develops and unique compiler i.e. there is only one compiler for java which produces unique bytecode so the code to develop Machine (JVM) which handles bytecode will be unique i.e. code which develop JVM would also be unique.

But from JDK 1.5, there is a concept of JRE(Java Runtime Environment).
In JRE, they just provide readymade virtual machine i.e. OS vendor has no more need to include OS specific code, It has already developed for each OS and uploaded on Oracle's official website. we only need to go on website, download JRE and start code.

JRE = JVM + 20% code of specific OS


JDK = JRE + Development tools
    • JRE = JVM + 20% code of specific OS
      • Development tools: java, javac, javap, javaw etc.

    Development tools:
    JAVA already provide some basic tools which are very useful for some basic operations like compilation, run, document generation etc. I am not going in detail here for those. These are:
    • java
    • javac
    • javap
    • javaw etc..

    Comments

    suggestions

    Popular posts from this blog

    Why "F" and "L" suffix | (10.0F, 10L)

    Let us take it this way, We will create their needs. So we will get why they are needed. Try to guess, which functions will be executed in the following program: public class MyClass {     public static void main(String args[]) {         MyClass obj = new MyClass();         obj.fun1(10);     }     void fun1(byte val){         System.out.println(val);     }     void fun1(int val){         System.out.println(val);     }     void fun1(float val){         System.out.println(val);     }     void fun1(long val){         System.out.println(val);     }     } It seems like every method is capable to run this program because 10 is still literal because It has no data type. Before Java, In previous technologies, this scenario gave an ambiguity...

    Promises and Async-await in depth : Asynchronous Programming in Javascript

    Promises and Asynchronous Programming One of the most powerful aspects of JavaScript is how easily it handles asynchronous programming. As a language created for the Web, JavaScript needed to be able to respond to asynchronous user interactions such as clicks and key presses from the beginning. Node.js further popularized asynchronous programming in JavaScript by using callbacks as an alternative to events. As more and more programs started using asynchronous programming, events and callbacks were no longer powerful enough to support everything developers wanted to do.  Promises  are the solution to this problem. Promises are another option for asynchronous programming, and they work like futures and deferreds do in other languages. A promise specifies some code to be executed later (as with events and callbacks) and also explicitly indicates whether the code succeeded or failed at its job. You can chain promises together based on success or failure in ways that make your code...

    ChatGPT aur Google me kya difference hai?

      ChatGPT aur Google dono alag-alag hain. ChatGPT ek language model hai jo ki OpenAI dwara train kiya gaya hai. Iski madad se hum natural language text ko generate, understand, aur respond kar sakte hain. Google, on the other hand, ek search engine hai jo ki internet par available information ko search karne ki capability rakhta hai. ChatGPT language model ke through hum natural language text ko generate kar sakte hain, jese ki poetry, stories, articles and so on. Iski madad se hum human-like text ko generate kar sakte hain. Google, on the other hand, internet par available information ko search karta hai. Iske through hum kisi bhi topic ke bare me jankari le sakte hain. Dono alag hain, lekin kuch similarities bhi hain. Dono natural language text ke sath work karte hain. ChatGPT natural language text generate karne ke liye use kiya jata hai, aur Google natural language text ko search karne ke liye use kiya jata hai. ChatGPT ke through hum natural language text ko generate kar sakte...