JVM là gì? Định nghĩa JVM

JVM là gì?

JVM (Java Virtual Machine) là một máy ảo Java – nó được sử dụng để thực thi các chương trình Java hay nói cách khác, là trình thông dịch của Java. JVM cung cấp môi trường để code Java có thể được thực thi. Khi biên dịch, chương trình Java tạo ra mã máy gọi là bytecodes. Ví dụ, 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ụ, Windows được biên dịch dưới dạng file exe, Linux là file .ELF…

Định nghĩa JVM

Mỗi nền tảng hoặc hệ điều hành khác nhau (Windows, Android, Linux…) lại có một loại JVM khác nhau được cài đặt. Nói Java đa nền tảng, thực chất nó được hỗ trợ bởi JVM trên nhiều nền tảng khác nhau. Chương trình Java có thể chạy được trên Windows/Linux/IOS bởi vì nó có JVM chạy được trên các nền tảng đó. Đó là lý do tại sao lập trình Java chỉ cần một nơi nhưng lại có thể chạy được ở nhiều nơi, và JVM này là người thực hiện điều này.

Máy ảo java được sinh ra với 3 mục đích chính

  • Dịch mã Java ra mã máy có thể chạy được trên các hệ điều hành khác nhau
  • Tăng tốc độ thực thi
  • Nâng cao độ bảo mật và tránh vi-rút phá source code

JVM thực hiện các công việc 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, có bị lỗi không, và nếu code có lỗi, chương trình sẽ không chạy được)
  • Thực thi code
  • Cung cấp môi trường 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 bytecode
  • Data Area: Vùng nhớ hệ thống cấp phát cho Java Virtual Machine
  • Execution Engine: Chuyển các lệnh của JVM trong file *.class thành các lệnh tương ứng của máy, hệ điều hành và thực thi chúng.

Cơ chế thực hiện

Sau khi Classloader tìm và load các 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 cho class (Method), trong đó được phân chia thành heap, stack, PC register, native method stack
  • Heap: Đây là khu vực dữ liệu thời gian chạy, nơi các đối tượng được phân bổ.
  • 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 quản lý một stack. Khi phương thức được gọi, nó được đưa vào đỉnh của Stack. Stack lưu trữ trạng thái của phương thức bao gồm: dòng code thực thi, tham chiếu tới đối tượng địa phương. Khi phương thức chạy xong, vùng nhớ (dòng code thực thi, tham chiếu tới đối tượng địa phương) được đẩy ra khỏi stack và tự động giải phóng.
  • PC register (Program Counter Register): Chứa địa chỉ của các hướng dẫn hiện đang được thực hiện trong máy ảo Java.
  • Native Method Stack: Nơi chứa tất cả các phương thức native trong chương trình.
  • Execution Engine: Bao gồm một bộ xử lý ảo, một trình dịch đọc dòng bytecode và thực hiện các hướng dẫn, cuối 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ó chức năng tương tự như cùng một lúc và do đó giảm số lượng thời gian cần thiết cho việc biên dịch. Thuật ngữ này đề cập đến việc dịch từ hướng dẫn của máy ảo Java (JVM) sang các tập lệnh của CPU cụ thể.

Tài liệu tham khảo thêm:

  • 4 tính chất của lập trình hướng đối tượng trong Java
  • 10 Java Web Framework tốt nhất
  • Top 10 câu hỏi phỏng vấn Java thường gặp
  • Java và những điều thú vị có thể bạn chưa biết

HEFC được chỉnh sửa bởi HEFC.

Related Posts

Xét nghiệm Giải phẫu bệnh – Dẫn đường cho việc điều trị

Xét nghiệm giải phẫu bệnh được thực hiện trên những mẫu bệnh phẩm tế bào, bệnh phẩm mô từ các cơ quan trong cơ thể được sinh…

Phương pháp điều trị tủy răng tại nha khoa hiện nay

Viêm tủy răng là một trong những vấn đề về sức khỏe răng miệng nghiêm trọng. Người mắc viêm tủy răng không chỉ phải chịu đựng những…

Mỹ thuật ứng dụng là gì? (cập nhật 2023)

Khi những giá trị thẩm mỹ ngày càng được chú trọng thì các phẩm mỹ thuật ứng dụng ngày càng đi sâu vào đời sống của mọi…

Bát quái đồ là gì? Ý nghĩa và vai trò của bát quái trong phong thủy

Bát quái đồ là vật phẩm phong thủy được sử dụng khá rộng rãi và phổ biến trong văn hoá phương Đông, nhằm mang lại những niềm…

Du học ngành khoa học ứng dụng và cơ bản

>> Du học ngành khoa học đại cương >> Các trường có đào tạo ngành Khoa học ứng dụng và cơ bản Khoa học Ứng dụng và…

Trồng răng implant là gì? Những điều cần phải biết trước khi chọn trồng răng implant

Trồng răng implant là phương pháp trồng răng cấy trụ kim loại vào xương hàm để thay thế cho răng đã mất. Chính vì vậy trụ implant…