Như đã nói ở cuối phần 1, phần 2 này tôi sẽ nói về cách phân biệt giữa JDK, JVM và JRE.
Nếu bạn không muốn đọc nhiều có thể kéo nhanh xuống phần 5. TLDR.
JDK (viết tắt của Java Development Kit) là 1 môi trường phát triển phần mềm đa nền tảng (cross-platformed), nó cung cấp 1 tập công cụ và thư viện cần thiết để phát triển phần mềm và ứng dụng dựa trên nền tảng Java.
Người mới thường bị nhẫm lần giữa JDK và JRE. Để dễ dàng hiểu vì sao nó khác nhau thì:
Có thể thấy: JDK = JRE + các công cụ lập trình Java khác nhau.
JRE (viết tắt của Java Runtime Environment)là gói cài đặt cung cấp môi trường chỉ dùng để chạy/không dùng để phát triển (only run/not develop) chương trình java (hoặc ứng dụng) trên máy của bạn.
JRE thường chỉ được sử dụng để chạy ứng dụng Java bởi người dùng cuối (end-user).
JRE trong JDK còn được gọi là Private Runtime bởi nó được tách khỏi JRE thông thường và có thêm các nội dung khác.
Sau đây là 1 số thành phần của JRE:
Có thể thấy: JRE = JVM + các thư viện class khác nhau.
Xem thêm về JDK và JRE: https://www.geeksforgeeks.org/jdk-in-java/?ref=lbp
JVM (viết tắt của Java Runtime Machine): là một phần rất quan trọng của cả JDK và JRE vì nó được có sẵn trong cả JDK và JRE.
Bất kỳ chương trình Java nào bạn chạy bằng JRE hoặc JDK đều đi vào JVM và JVM chịu trách nhiệm thực thi (excute) từng dòng chương trình java, do đó nó còn được gọi là trình thông dịch (interpreter).
Khi biên dịch (compile) 1 file .java
, các file .class
(chứa bytecode) có cùng tên class
có trong tệp .java
được trình biên dịch Java tạo ra.
Giả sử ta có một file java là Example.java
. File được biên dịch thành một bộ bytecode được lưu vào file Example.class
.
Dưới đây là các hoạt động sau xảy ra trong runtime:
JVM hoạt động như một runtime engine để chạy các ứng dụng Java. JVM chính là thứ gọi method main trong file Java.
JVM là 1 phần của JRE.
Ứng dụng Java được gọi là WORA (Write Once Run Anywhere). Có nghĩa là một programmer có thể lập trình phần mềm Java trên 1 hệ thống và có thể cho nó chạy trên bất kỳ hệ thống hỗ trợ Java nào khác. JVM chính là thứ làm điều này.
Ở ví dụ trên file Example.class
sẽ được đưa vào JVM. Lúc này JVM sẽ thực hiện 3 nhiệm vụ chính:
Toàn bộ quá trình xử lý trong JVM được miêu tả bằng hình dưới.
Bài cũng kết thúc rồi, cảm ơn các bạn đã đọc tới đây. Hẹn gặp các bạn trong bài viết tới.