Java Virtual Machine (JVM) là gì, nó được dùng để làm gì? – Shop máy chủ Việt Nam | Máy chủ, Server, Máy trạm, Thiết bị lưu trữ, Linh kiện máy chủ, Tủ rack, Thiết bị mạng, Phần mềm bản quyền

Cùng với JRE ( Java Runtime Environment ) và JDK ( Java Development Kit ), thì Java Virtual Machine ( JVM ) là những thành phần quan trọng của nền tảng Java, giúp cho nền tảng Java tăng trưởng và thực thi những ứng dụng trong đó. Trong bài viết dưới đây tất cả chúng ta sẽ cùng nhau khám phá về khái niệm cơ bản về Java virtual machine là gì ? và nó được dùng để triển khai những việc làm nào ? .

1.  Khái niệm Java Virtual Machine là gì?

Java Virtual Machine được viết tắt ( JVM ) là một ứng dụng ảo được cho phép chạy những chương trình của Java cũng như những chương trình được viết bằng những ngôn từ khác nhưng vẫn được biên dịch sang mã bytecode của Java. Vì vậy, từ một chương trình đơn thuần hay phức tạp nhưng trải qua JVM thì hoàn toàn có thể chạy được trên những nền tảng khác nhau .
JVM có trách nhiệm quản trị bộ nhớ trong mạng lưới hệ thống và cung ứng môi trường tự nhiên thiết yếu cho ứng dụng Java, nó có hai công dụng quan trọng đó chính là được cho phép chương trình Java chạy trên tổng thể những thiết bị : quản trị tối ưu bộ nhớ chương trình và nền tảng khác nhau ( Write once, Run anywhere )

Java Virtual Machine (JVM) 1

2. Java Virtual Machine thực hiện các nhiệm vụ sau.

  • Tải code ( class, resource )
  • Kiểm tra code ( kiểm tra xem code có đúng với cú pháp hay không, có bị lỗi không, nếu trong trường hợp code lỗi thì sẽ không chạy được chương trình và ngược lại )
  • Thực thi code
  • Cung cấp thiên nhiên và môi trường runtime

3. Những thành phần chính của (JVM) Java Virtual Machine.

  • Class Loader : đây là một mạng lưới hệ thống con của JVM, có trách nhiệm tải những lớp đã được định nghĩa .
  • Class Area : có trách nhiệm tàng trữ cấu trúc của những lớp, phương pháp của lớp, thuộc tính và code của những phương pháp .
  • Heap : đóng vai trò là vùng nhớ tàng trữ những đối tượng người dùng được khởi động trong quy trình thực thi trách nhiệm .
  • Stack : chứa tổng thể những frame. Mỗi frame sẽ chứa những biến cục bộ và thực thi một hàm và trả hiệu quả về. Mỗi một quy trình đều có một Stack riêng và được khởi nguồn cùng lúc với quy trình đó. Khi một hàm được gọi thì mỗi frame sẽ được tạo ra và sẽ bị hủy khi việc gọi hàm kết thúc .
  • Programming Counter Register : chứa những địa chỉ của sever ảo đang được thực thi
  • Native Method Stack: có vai trò chứa các hàm của hệ thống được sử dụng trong chương trình

  • Execution Engine : là mạng lưới hệ thống gồm có : trình thông dịch ( đọc Java byte code và thực thi những thông tư ), bộ giải quyết và xử lý ảo, JIT compiler ( biên dịch mã bytecode sang mã máy ). Nhiệm vụ chính của JVM gồm có : tải code, kiểm tra, thực thi code và cung ứng thiên nhiên và môi trường runtime .

Java Virtual Machine (JVM) 2

4. Cơ chế làm việc của (JVM) Java Virtual Machine là gì.

JVM được chia ra thành 3 mô-đun chính :

  1. Classloader Subsystem : mô-đun này có trách nhiệm chuyên tìm kiếm và load toàn bộ những file. class vào vùng nhớ của Java .
  2. Runtime Data Area : đây là vùng nhớ mạng lưới hệ thống cấp phép cho Java Virtual Machine .
  3. Execution Engine : có trách nhiệm chuyển những lệnh của JVM trong file. class thành lệnh của máy và hệ điều hành quản lý tương ứng rồi thực thi chúng .

Java Virtual Machine (JVM) 3

5. Bộ nhớ trong của Java JVM.

Khi thực thi một đối tượng người tiêu dùng mới hoặc cấp phép một bộ nhớ hoàn toàn có thể sẽ được tạo và đặt vào vùng nhớ Heap. Khi ứng dụng của những bạn không còn tham chiếu tới đối tượng người dùng này thì Java garbage collector được cho phép bạn xóa đối tượng người tiêu dùng này đi để sử dụng lại vùng nhớ đó .

  • Java Heap: JVM giúp lưu trữ tất cả các đối tượng được tạo ra bởi toán tử “new” trong những ứng dụng Java vào vùng nhớ Heap ngay tại thời điểm chạy.

  • Java Stack : Các phương pháp, tham chiếu tới đối tượng người dùng tại địa phương thì được tàng trữ trong Stack. Mỗi Stack sẽ quản trị một Thread. Khi phương pháp đó được gọi, nó sẽ được đưa vào đỉnh của Stack. Stack sẽ có vai trò tàng trữ trạng thái của phương pháp gồm có : tham chiếu tới đối tượng người dùng địa phương, dòng code thực thi. Khi phương pháp này chạy xong, vùng nhớ ( dòng code được thực thi, tham chiếu tới đối tượng người tiêu dùng địa phương ) sẽ được đẩy ra khỏi stack và tự động hóa giải phóng .
  • Java Perm : Lưu trữ những thông tin của Class được nạp vào và một số ít tính năng khác như StringPool ( vùng nhớ của biến String ) thường sẽ được tạo ra bởi phương pháp String. intern. Khi những ứng dụng của bạn chạy, Perm space sẽ được lấp đầy nhanh gọn .

Qua bài viết này những bạn đã phần nào tưởng tượng được vài nét về Java Virtual Machine là gì cũng như vai trò hay trách nhiệm của nó trong nền tảng ứng dụng Java. Vì vậy mà Java không hề hoạt động giải trí mềm mịn và mượt mà khí không có sự tương hỗ của Java Virtual Machine. Nhờ có nó mà những ứng dụng của bạn trở nên mềm mịn và mượt mà và nhanh nhậy hơn. Chúc những bạn có những thưởng thức thật mê hoặc trong nền tảng ứng dụng của Java .