Ở bài viết này, chúng ta cùng nhau tìm hiểu về những định nghĩa mà có thể các bạn đã nghe qua trước đây là JDK, JRE và JVM trong ngôn ngữ lập trình Java nhé. Khi học về Java, đa số những người mới (trong đó có cả mình ^^) thường chỉ đơn giản chỉ tải JDK về cài đặt và bắt đầu học code luôn. Công nghệ Java bao gồm cả khía cạnh ngôn ngữ lập trình và platform. Về mặt ngôn ngữ lập trình, Java là ngôn ngữ lập trình hướng đối tượng bậc cao. Còn về mặt platform, Java còn có ý nghĩa là một môi trường cụ thể để cho các ứng dụng được lập trình bằng Java có thể chạy được.
1. JDK(Java Development Kit)
JDK (Java Development Kit) là một bộ công cụ cung cấp môi trường phát triển để viết và chạy các ứng dụng bằng ngôn ngữ Java. Nó bao gồm môi trường thực thi Java (JRE), một số tools như compiler, debugger, JavaDoc,… cần thiết để chạy các chương trình Java. Vì JDK là một phần mềm về platform nên đó là lý do tại sao chúng ta có rất nhiều bộ cài đặt riêng biệt dành các hệ điều hành như Window, Mac hay Linux
2. JVM (Java Virtual Machine)
JVM là thành phần vô cùng quan trọng trong Java. Khi bạn thực thi một chương trình thì trình biên dịch Java đầu tiên sẽ biên dịch Java code thành bytecode. Sau đó, JVM sẽ chuyển đổi bytecode thành ngôn ngữ máy tương ứng tùy thuộc vào hệ điều hành mà máy đó đang sử dụng. JVM được gọi là ảo vì nó cung cấp giao diện không phụ thuộc vào hệ điều hành cơ bản và phần cứng máy.
3. JRE(Java Runtime Environment)
JRE cung cấp các thư viện, máy ảo JVM và các thành phần khác để chạy các ứng dụng được viết bằng Java JRE không chứa bất kỳ công cụ development nào như là Java compiler, debugger, JShell,… Nếu như các bạn chỉ muốn thực thi chương trình mà không cần dev hoặc biên dịch code thì bạn chỉ cần cài đặt JRE mà không cần cài JDK. Nhưng tốt nhất là các bạn cứ cài đặt luôn bộ JDK nhé. Sơ đồ bên dưới cho thấy JRE (Môi trường chạy thi hành Java) là gói phần mềm cung cấp các thư viện lớp Java, cùng với Máy ảo Java (JVM) và các thành phần khác để chạy các ứng dụng được viết bằng lập trình Java.
4. Kết luận JDK, JVM, JRE
Vừa rồi chúng ta đã đi chi tiết cho các thành phần chính về Java platform. Bây giờ mình sẽ tóm tắt lại cho các bạn một số ý chính sau đấy nhé
– JDK là dành cho mục đích phát triển phần mềm trong khi JRE đơn giản dành cho việc thực thi chương trình Java. – JDK và JRE đều chứa JVM vì vậy chúng ta có thể chạy được chương trình viết bằng Java. – JVM là hạt nhân của ngôn ngữ lập trình Java và nó cung cấp nền tảng độc lập để chương trình có thể thực thi được.
Sơ đồ bên dưới thể hiện mối quan hệ giữa JVM, JRE và JDK: