JAVA VIRTUAL MACHINE LÀ GÌ

     

JVM là gì?

JVM (Java Virtual Machine) là 1 trong máy ảo java – nó được dùng để thực thi những chương trình Java hay gọi nôm mãng cầu là trình thông dịch của Java. Nó hỗ trợ môi trường để code java có thể được thực thi. Lịch trình Java lúc biên dịch sẽ khởi tạo ra các mã máy call là bytecodes. Như bạn thấy mỗi hệ điều hành chạy chương trình của nó ứng với một mã máy khác nhau đó là mã bytecodes, ví dụ như Windows được biên dịch dưới dạng exe còn Linux là .ELF…

Định nghĩa JVM

Tóm gọn gàng lại là từng nền tảng/hệ điều hành không giống nhau (Windows, Android, Linux…) lại có một các loại JVM không giống nhau được sở hữu đặt. Nói Java đa nền tảng, thực ra thì nó được hỗ trợ JVM trên nhiều nền tảng. Chương trình Java chạy được bên trên Window/Linux/IOS vì nó tất cả JVM chạy được trên các nền tảng đó, vì chưng vậy new hiểu chân thành và ý nghĩa là lập trình Java một khu vực nhưng chạy được không ít chỗ là vì JVM này thực hiện.

Bạn đang xem: Java virtual machine là gì

Các chúng ta cũng có thể tham khảo cơ chế thực hiện 1 lịch trình Java trong sơ đồ sau đây :


*
*
*

Máy ảo java được có mặt với 3 mục đích chính

Dịch mã java ra mã máy chạy được trên các hệ điều hành khác nhauTăng tốc độNâng cao độ bảo mật và tránh virut phá source code

JVM triển khai các quá trình chính sau đây

Tải code (các class, resource)Kiểm tra code (kiểm tra code có đúng cú pháp không, bao gồm bị lỗi không, tất yếu nếu code có lỗi thì sẽ không chạy được chương trình rồi)Thực thi codeCung cấp môi trường xung quanh runtime

JVM có 3 thành phần chính

Class Loader: Tìm kiếm và load các file *.class vào vùng nhớ của java dưới dạng bytecodeData Area : vùng nhớ hệ thống cấp phát cho Java Virtual MachineExecution Engine: chuyển các lệnh của JVM trong tệp tin *.class thành những lệnh của máy, hệ điều hành tương ứng và xúc tiến chúng.

Cơ chế thực hiện

Sau khi Classloader tìm cùng load những file .class, các file này sẽ được máy ảo JVM cung cấp bộ nhớ tương ứng với chúng.

Class (Method) area: là vùng nhớ cấp phát mang đến class(Method) trong đó lại phân loại thành heap, stack, PC register, native method stackHeap: Đây là khu vực dữ liệu thời gian chạy trong các số đó các đối tượng được phân bổ.

Xem thêm: Mua Bán, Thanh Lý Thùng Đựng Đồ Xe Máy Giá Rẻ, Uy Tín, Chất Lượng Nhất

Stack : các phương thức và tham chiếu tới đối tượng địa phương được lưu trữ trong Stack. Mỗi Thread thống trị một stack. Khi thủ tục được gọi, nó được gửi vào đỉnh của Stack. Stack tàng trữ trạng thái của phương thức gồm những: dòng code thực thi, tham chiếu tới đối tượng người sử dụng địa phương. Khi cách tiến hành chạy xong, vùng nhớ (dòng code thực thi, tham chiếu tới đối tượng địa phương) được xuất kho khỏi stack và auto giải phóng.PC register (Program Counter Register) : Nó chứa showroom của các máy ảo Java lý giải hiện đang rất được thực hiện.Native Method Stack: nơi chứa tất cả các method native vào chương trìnhExecution Engine: Nó bao gồm: Một cpu ảo, một phiên dịch nhằm đọc loại bytecode sau đó thực hiện những hướng dẫn và sau cùng là trình biên dịch Just-In-Time (JIT). JIT biên dịch các phần của mã byte có tính năng tương từ như cùng một lúc, và cho nên vì vậy làm giảm con số thời gian quan trọng cho compilation.

Xem thêm: Hệ Mặt Trời Là Gì ? Trong Hệ Mặt Trời Có Mấy Hành Tinh

*Thuật ngữ: trình biên dịch là đề cập đến như một dịch trả từ phần đông hướng dẫn của một máy ảo Java (JVM) cho những tập lệnh của CPU cố kỉnh thể.