99 Ngày Java — Ngày 01: Java là gì? JVM, JDK và JRE
Chào mừng bạn đến với 99 Ngày Java — hành trình mỗi ngày một chủ đề, từ con số 0 đến khi tự tin viết ứng dụng Java thực thụ. Ngày đầu tiên, chúng ta trả lời câu hỏi căn bản nhất: Java là gì, nó chạy như thế nào, và bộ ba JVM – JRE – JDK khác nhau ra sao. Đây là nền móng mà mọi buổi phỏng vấn Java đều hỏi tới.

Java là gì?
Java ra đời năm 1995 tại Sun Microsystems (nay thuộc Oracle), cha đẻ là James Gosling. Gần 30 năm sau, Java vẫn nằm trong nhóm ngôn ngữ phổ biến nhất thế giới, là xương sống của backend doanh nghiệp, hệ thống ngân hàng, thương mại điện tử và cả ứng dụng Android.
Hướng đối tượng — mọi thứ xoay quanh class và object (học kỹ từ ngày 11).
Kiểu tĩnh — biến phải khai báo kiểu, compiler bắt lỗi ngay khi biên dịch.
WORA —
Write Once, Run Anywhere: viết một lần, chạy trên mọi hệ điều hành.
Bí quyết của WORA nằm ở chỗ: Java không chạy trực tiếp trên máy thật, mà chạy trên một máy ảo gọi là JVM.
Java chạy như thế nào?
Hãy nhìn chương trình Java đầu tiên của series (ngày mai chúng ta sẽ mổ xẻ từng dòng):
public class Hello {
public static void main(String[] args) {
System.out.println("Xin chào, 99 Ngày Java!");
}
}Từ file mã nguồn đến lúc chạy được, code đi qua hai bước:
javac Hello.java # biên dịch → Hello.class (bytecode)
java Hello # JVM nạp bytecode và thực thiHello.class chứa bytecode — một ngôn ngữ trung gian không phụ thuộc hệ điều hành. Cùng một file bytecode có thể chạy trên Windows, Linux hay macOS, miễn là máy đó có JVM. Khi chạy, JVM còn có JIT compiler dịch những đoạn bytecode được gọi nhiều thành mã máy để tăng tốc — vì vậy Java càng chạy lâu càng nhanh.
JVM, JRE và JDK khác nhau thế nào?
Ba khái niệm này lồng vào nhau như búp bê Nga: JDK ⊃ JRE ⊃ JVM.
JVM (Java Virtual Machine) — trái tim: nạp và thực thi bytecode, quản lý bộ nhớ và garbage collection.
JRE (Java Runtime Environment) — JVM + thư viện chuẩn (String, List, IO…). Đủ để chạy ứng dụng.
JDK (Java Development Kit) — JRE + công cụ phát triển:
javac(compiler),jdb(debugger),javadoc… Đủ để viết ứng dụng.
Quy tắc nhớ nhanh: lập trình viên luôn cài JDK. Từ Java 11 trở đi, Oracle không phát hành JRE riêng nữa — cài JDK là có tất cả.
Cài đặt JDK 21
Series này dùng Java 21 — bản LTS (Long-Term Support) được hỗ trợ dài hạn và là chuẩn của các framework hiện đại như Spring Boot 3. Bạn có thể tải Eclipse Temurin (miễn phí, khuyến nghị) tại adoptium.net hoặc Oracle JDK tại oracle.com. Cài xong, mở terminal và kiểm tra:
$ java -version
openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode)Nếu lệnh trên in ra phiên bản 21.x là bạn đã sẵn sàng. Trên Windows, nhớ kiểm tra biến môi trường JAVA_HOME trỏ đến thư mục cài JDK và PATH chứa %JAVA_HOME%\bin (trình cài đặt Temurin có tùy chọn làm sẵn việc này).
Bài tập nhỏ
Cài JDK 21 và chạy
java -versionthành công.Tự giải thích bằng lời của bạn: bytecode là gì, vì sao Java chạy được mọi nơi?
Không nhìn bài viết, vẽ lại sơ đồ JDK ⊃ JRE ⊃ JVM.
Kết luận
Bạn đã nắm được bức tranh lớn: Java biên dịch ra bytecode, JVM thực thi bytecode trên mọi hệ điều hành, và JDK là bộ đồ nghề của lập trình viên. Ngày 02, chúng ta sẽ viết chương trình đầu tiên và mổ xẻ từng thành phần: public static void main thực ra nghĩa là gì? Hẹn gặp lại!
Site Admin
Engineer and writer. Building things with TypeScript and distributed systems.
Bình luận (0)
Bạn cần đăng nhập bằng Google để bình luận.
Hãy là người bình luận đầu tiên.


