JVM và Sự khác biệt giữa JVM, JDK, JRE

Java là một ngôn ngữ lập trình bậc cao. Một chương trình bậc cao không thể chạy trực tiếp trên bất kỳ máy nào! Vậy nên chúng ta cần compiler code thì mới chạy được nhé.

Như bài giới thiệu trước, JVM là một máy ảo được cài đặt trên máy thật của chúng ta. JVM sẽ thực thi những đoạn byte code được biên dịch từ JDK. JVM là một trong những thành phần quan trọng làm cho java trở thành một nền tảng độc lập.

Quá trình biên dịch code java

Nhìn vào hình trên, chúng ta thấy Source code chúng ta viết sẽ được biên dịch thành bytecode thông qua javac. bytecode chúng ta có được sau quá trình biên dịch có thể chạy trên bất kỳ hệ điều hành nào nhờ vào JVM.

Kiến trúc JVM

JVM Architecture
JVM Architecture

Class loader: Đọc các file .class và lưu chúng dưới dạng byte code trong method area.

Method Area: Chia sẽ cho các thread, được tạo khi JVM start-up. Method area chứ class reference, các runtime constant poolm mã bytecode, cho từng class và interface.

Heap: Là một phần của JVM memory nơi các object được phân bổ. JVM tạo một class object cho mỗi file .class.

Stack: Stack cũng là một phần của JVM memory, không giống như Heap, Stack được sử dụng để lưu trữ các biến tạm thời.

PC Registers: Theo dõi các lệnh nào đã được thực thi rồi, các lệnh nào chưa được thực thi. Mỗi thread có một PC Register riêng.

Native method stack: Một method native có thể truy cập các vùng data runtime của virtual machine.

Native method interface: Cho phép java code call hoặc bị call bởi ứng dụng gốc. 

Garbage collection: Các instace được tạo ra bởi java code sau khi được sử dụng sẽ được Garbage collection phá huỷ để quản lý bộ nhớ.

Sự khác biệt giữa JVM, JDK, JRE

JRE là môi trường cho máy ảo java (JVM) chạy. JRE chứ JVM, class libraries etc. Với JRE chúng ta có thực run code nhưng không thể develop và compile.

JVM thực thi chương trình sử dụng class, libraries, các tập tin được cung cấp bởi JRE.

JDK chứa JRE cà các công cụ phát triển như trình biên dịch, trình gỡ lỗi etc.

‹Previous Next›

Please follow and like us:
error

Leave a Reply

Your email address will not be published. Required fields are marked *