Mọi người nếu ai đã và sẽ làm việc trên ngôn ngữ Java thì sẽ biết đến các khái niệm JDK, JRE và JVM. Vậy mọi người có biết chúng là gì và sự khác nhau giữa chúng không? Trong bài viết này, mình sẽ nói rõ để mọi người có cái nhìn rõ hơn nhé!
Đầu tiên, mình sẽ nói về JDK. JDK, viết tắt của Java Development Kit, là một bộ công cụ cung cấp môi trường để chúng ta xây dựng, phát triển và thực thi các ứng dụng Java.
JDK bao gồm 2 thứ:
- Development tool: nó cung cấp cho chúng ta một môi trường để phát triển các ứng dụng Java. Nó chứa các công cụ tiện ích như javac, debugger, jar giúp chúng ta compile source code (các tập tin .java) thành byte code (các tập tin .class).
- JRE: để thực thi các chương trình Java. Nó giúp chúng ta chạy và thực thi các byte code.
Thông thường, để bắt đầu lập trình với ngôn ngữ Java thì chúng ta bắt buộc phải cài đặt JDK.
Còn JRE thì sao? Như mình đã nói sơ qua ở trên, JRE, viết tắt của từ Java Runtime Environment, là một gói cài đặt chỉ giúp chúng ta thực thi các ứng dụng Java, lưu ý là chỉ có mục đích là chạy, không có phát triển nha các bạn.
JRE sẽ chứa JVM, các classes, thư viện để chạy runtime các ứng dụng Java.
Do đó, nếu nhu cầu chỉ là chạy các ứng dụng Java thì các bạn chỉ cần cài đặt JRE thôi nhé!
Cuối cùng, JVM là gì? JVM, viết tắt của từ Java Virtual Machine, là một phần quan trọng của JRE, nó convert byte code sang machine code giúp chương trình của chúng ta có thể thực thi được.
Cho dù bạn cài đặt JDK hay JRE thì JVM vẫn là thành phần chính giúp chúng ta có thể thực thi được ứng dụng Java.
JVM cung cấp cho chúng ta một số chức năng để chúng ta có thể quản lý memory, garbage collection, security và một số chức năng hữu dụng khác.
Tóm lại, mối quan hệ và sự khác nhau giữa JDK, JRE và JVM chúng ta có thể mô tả bằng hình vẽ sau: