2
Java Virtual Machine (JVM) là gì?
0
thientri3330 đã đăng:

Mọi người cho mình hỏi Java Virtual Machine (JVM) là gì? Nó có tác dụng gì với ngôn ngữ Java ạ?

thêm bình luận...
1
conghuu20 đã đăng:

Bất kỳ một ngôn ngữ lập trình cấp cao nào cũng đều phải có bộ phận chuyển hóa mã byte code sau khi biên dịch thành mã máy. Đối với ngôn ngữ Java nói riêng thì Java Virtual Machine sẽ chịu trách nhiệm cho việc này.

Khi bạn chạy một chương trình Java thì nó sẽ được chạy dưới dạng các luồng (hay còn gọi là thread) trong Java Virtual Machine theo các bước sau:

  • Tải mã nguồn (Load code)
  • Kiểm tra mã nguồn (Verify code)
  • Thực thi mã nguồn (Executes code)

Bạn có thể xem cách một chương trình Java được thực thi với hình bên dưới,

Cách hoạt động của Java Virtual Machine

Một điều nữa là mỗi hệ điều hành (Windows, Mac, Linux) sẽ cần một Java Virtual Machine riêng để hoạt động, sở dĩ nó được gọi là Virtual bởi vì nó cung cấp giao diện lập trình không phụ thuộc vào từng hệ điều hành.

Việc cấp phát bộ nhớ cho chương trình của bạn, quản lý các luồng thực thi của chương trình, dọn rác tự động, ...v.v đều do Java Virtual Machine đảm nhận hết nên nó được gọi là "xương sống" trong ngôn ngữ lập trình Java.

đã bổ sung 6.3 năm trước bởi
Mr. Carrot ♦♦ 40

Mã byte code là mã gì vậy bạn?

thientri333 14.12.2017
1

Mã byte code là do trình biên dịch của từng ngôn ngữ lập trình tạo ra sau khi bạn thực hiện chạy chương trình hay debug. Ví dụ:

  • C/C++: file_name.cpp sẽ thành file_name.objsau khi biên dịch.
  • Java: file_name.java sẽ thành file_name.class sau khi biên dịch.
  • Python: file_name.py sẽ thành file_name.pyc sau khi biên dịch.
conghuu 14.12.2017

Thì ra là vậy, thanks bạn nhiều.

thientri333 14.12.2017

You're welcome!

conghuu 14.12.2017
thêm bình luận...
0
Cộng đồng đã đăng:

JVM là tên viết tắt của Java Virtual Machine, là một ứng dụng cần thiết giúp chạy các chương trình viết bởi Java trên mọi hệ điều hành khác nhau.

Link tham khảo: Sự khác nhau giữa Java SE, JDK, JRE và JVM

thêm bình luận...
Bạn đang thắc mắc? Ghi câu hỏi của bạn và đăng ở chế độ cộng đồng (?)