Lời nói đầu
Tôi viết series này để chia sẻ quá trình học Java của mình.
1. Java Development Kit (JDK)
Là 1 bộ công cụ lập trình Java hoàn chỉnh bao gồm toàn bộ mọi thứ bao gồm:
Compiler (Javac)
Java Runtime Environment (JRE)
Java Debuggers
Java documentation generator (Javadoc)
Archiver (jar)
2. Java Virtual Machine (JVM)
Xem thêm về JVM: https://www.geeksforgeeks.org/jvm-works-jvm-architecture/
Chúng ta có 3 giai đoạn để thực thi 1 chương trình Java:
Giai đoạn 1: Viết chương trình Java (được thực hiện bởi lập trình viên java như chúng ta).
Giai đoạn 2: Trình biên dịch (compiler) JAVAC sẽ thực hiện biên dịch chương trình. JAVAC là trình biên dịch chính của Java, nó được tích hợp sẵn trong Java Development Kit (JDK). JAVAC lấy chương trình Java để làm input và tạo ra output là bytecode tương ứng.
Giai đoạn 3: Trong giai đoạn chạy chương trình, JVM thực thi các bytecode đã được tạo ra bởi trình biên dịch JAVAC.
3. Bytecode
Như đã nói ở trên, trình biên dịch JAVAC của JDK biên dịch mã nguồn java thành bytecode và làm tiền đề để JVM thực thi bytecode đó.
Trình biên dịch JAVAC lưu bytecode dưới dạng 1 file .class
Để xem bytecode, 1 trình dịch ngược (disassembler) như javap
có thể sử dụng.
Xem thêm về javap: https://www.geeksforgeeks.org/javap-tool-in-java-with-examples/
4. Java Runtime Environment (JRE)
Là gói cài đặt cung cấp môi trường để chỉ chạy (tức không dùng để phát triển) chương trình java trên máy của bạn.
JRE thường chỉ được sử dụng bởi các end-user (hay người sử dụng).
5. ClassPath
ClassPath là 1 đường dẫn file nơi mà Java Runtime và Java Compiler tìm tới các file .class
để thực thi.
Mặc định JDK đã cung cấp rất nhiều thư viện. Nếu muốn thêm các thư viện bên ngoài thì ta phải thêm classpath.
Xem thêm về ClassPath: https://www.geeksforgeeks.org/classpath-in-java/
6. Garbage Collector
Trong Java, lập trình viên không thể xóa các object. Thay vào đó, JVM có 1 chương trình gọi là Garbage Collector dùng để thực hiện việc này
Kết bài
Cảm ơn bạn đã đọc tới đây. Sang phần sau tôi sẽ nói về 3 khái niệm mà người mới học dễ bị nhầm lẫn đó là JDK, JVM và JRE.