Skip to content
Rikkei AcademyRikkei Academy
  • Khóa học

    Hướng dẫn bởi những giảng viên chất lượng từ các trường đại học công nghệ top đầu Việt Nam

    Kiểm tra độ phù hợp

    5 phút kiểm tra nhanh liệu bạn có phù hợp với ngành Công nghệ thông tin

    Tìm hiểu thêm
    Cho người mới bắt đầu

    Bắt đầu sự nghiệp lập trình từ con số 0 với lộ trình học tập chỉ sau 6 tháng

    Tìm hiểu thêm
    Lập trình viên Nhật Bản

    Bắt đầu sự nghiệp lập trình với khả năng tiếng Nhật từ N3

    Tìm hiểu thêm
    Phân tích dữ liệu - HUST

    Nâng cấp nghiệp vụ, tiến bước sự nghiệp với phân tích dữ liệu

    Tìm hiểu thêm
    Kỹ sư Công nghệ thông tin - PTIT

    Trở thành Kỹ sư Công nghệ thông tin trong thời đại số

    Tìm hiểu thêm
    IT Fresher - Rikkei Certificate

    Trở thành IT Fresher với khởi đầu khác biệt, doanh nghiệp săn đón

    Tìm hiểu thêm
  • Tài nguyên
    • Icon1Tài nguyên học tập
      • Blog
      • Kiến thức chuyên môn
      • Khám phá Nhật Bản
    • Icon Menu1Tin tức công nghệ
      • What’s New – What’s Next?
      • Thông tin sự kiện
  • Vì sao chọn Rikkei Education
    • Về Rikkei Education
    • Hệ sinh thái Rikkei
    • Nhân sự Rikkei Education
    • Cộng đồng RA Alumni
    • Ươm mầm xanh & CSR
    • Cơ hội nghề nghiệp
  • Ngôn ngữ
    • Tiếng Việt
    • Tiếng Anh
    • Tiếng Nhật
Trang chủ / Kiến thức chuyên môn / JVM là gì? Tìm hiểu chi tiết về Java Virtual Machine trong Java
  • Dành cho người mới bắt đầu
  • Dành cho người đã có nền tảng
  • Dành cho người muốn đi Nhật
  • Nhận kho tài liệu miễn phí
Test tư duy lập trình miễn phí

Đăng ký nhận tin tức từ Rikkei Academy

    31/05/2023

    JVM là gì? Tìm hiểu chi tiết về Java Virtual Machine trong Java

    Phí Thanh 04 phút đọc
    Jvm La Gi Rikkei Academy

    Mục lục

    Toggle
    • JVM là gì?
    • Nhiệm vụ của JVM là gì?
    • Kiến trúc của JVM là gì?
      • Classloader
      • Class (Method) Area
      • Heap
      • Stack
      • Program Counter Register
      • Native Method Stack
      • Execution Engine
      • Java Native Interface
    • Cách hoạt động của JVM trong Java
    • Cách tải JVM là gì?
    • Kết luận

    Kiến thức về nền tảng Java và các thành phần của nó là một trong những kiến thức căn bản và thiết yếu khi tìm hiểu về ngôn ngữ lập trình Java. Trong bài viết này, Rikkei Academy sẽ cùng bạn tìm hiểu 1 trong 3 thành phần cốt lõi của Java Platform – JVM là gì?

    JVM là gì?

    JVM là viết tắt của Java Virtual Machine (Máy ảo Java), là một phần quan trọng của nền tảng Java (Java Platform). Nó là một môi trường thực thi cho các chương trình Java, cho phép chúng được thực thi trên nhiều hệ điều hành khác nhau mà không cần phải biên dịch lại mã nguồn cho từng hệ điều hành riêng lẻ.

    Máy ảo Java cũng đảm bảo sự tương thích với các phiên bản Java trước đó, nghĩa là các chương trình Java của phiên bản cũ vẫn có thể chạy trên các phiên bản Java mới hơn mà không cần sửa đổi. Điều này đảm bảo tính ổn định và liên tục của các ứng dụng Java khi có các bản cập nhật mới của JVM và Java.

    Nhiệm vụ của JVM là gì?

    • Tải mã bytecode và các tệp lớp của ứng dụng Java.
    • Xác minh tính hợp lệ của mã bytecode và các tệp lớp.
    • Thực thi mã bytecode và các tệp lớp bằng cách sử dụng trình thông dịch hoặc trình biên dịch Just-In-Time (JIT).
    • Cung cấp môi trường thời gian chạy (JRE) cho ứng dụng Java
    • Quản lý bộ nhớ và đối tượng của ứng dụng Java, bao gồm việc cấp phát và thu gom rác.
    • Cung cấp các tiện ích hỗ trợ như quản lý lỗi và ghi nhật ký.
    • Cung cấp các API và thư viện chuẩn để phát triển các ứng dụng Java.
    • Đảm bảo tính bảo mật của ứng dụng Java bằng cách kiểm soát quyền truy cập và cung cấp môi trường thực thi được kiểm soát.
    • Cung cấp khả năng giao tiếp với các thư viện native và các ứng dụng được viết bằng các ngôn ngữ khác như C hoặc C++ thông qua Java Native Interface (JNI).
    • Cung cấp định nghĩa cho các khu vực như khu vực bộ nhớ, định dạng tệp lớp, bộ đăng ký, bộ nhớ heap được thu gom rác và báo cáo lỗi nghiêm trọng.

    Tìm hiểu thêm: JRE là gì? Tìm hiểu chi tiết về Java Runtime Environment

    Kiến trúc của JVM là gì?

    Kiến trúc JVM (JVM Architecture) bao gồm các thành phần sau:

    Jvm La Gi Rikkei Academy
    Cấu trúc JVM trong Java

    Classloader

    Classloader là một hệ thống con của JVM được sử dụng để tải các tệp lớp và các tài nguyên của ứng dụng Java. Khi chúng ta chạy chương trình Java, nó sẽ được tải trước bởi classloader. Có ba classloader được tích hợp sẵn trong Java.

    • Bootstrap ClassLoader: Đây là classloader đầu tiên là siêu lớp của Extension classloader. Nó tải tệp rt.jar chứa tất cả các tệp lớp của Java Standard Edition như các lớp gói java.lang, java.net, java.util, java.io, java.sql v.v.
    • Extension ClassLoader: Đây là classloader con của Bootstrap và là classloader cha của System classloader. Được sử dụng để tải các tệp .jar chứa các lớp mở rộng của Java và các API của bên thứ ba.
    • System/Application ClassLoader: Đây là classloader con của Extension classloader. Nó tải các tệp lớp từ classpath – một biến môi trường hoặc một tùy chọn dòng lệnh cho phép người dùng chỉ định vị trí các tệp lớp được sử dụng trong ứng dụng Java.

    Class (Method) Area

    Class (Method) Area được sử dụng để lưu trữ các metadata của các lớp Java và các phương thức của chương trình.

    Heap

    Đây là nơi lưu trữ các đối tượng Java được cấp phát bởi chương trình. Khi một đối tượng Java được tạo ra, Heap sẽ lưu trữ đối tượng đó. Khi đối tượng không còn được sử dụng nữa, đối tượng sẽ bị xóa khỏi Heap bởi garbage collector và giải phóng không gian bộ nhớ.

    Stack

    Java Stack lưu trữ các frame. Nó giữ các biến cục bộ và kết quả phần (partial results), và đóng vai trò trong việc gọi và trả về phương thức.

    Mỗi luồng (threads) có một JVM stack riêng, được tạo cùng lúc với luồng.

    Một frame mới được tạo mỗi khi một phương thức được gọi. Frame bị hủy khi việc gọi phương thức của nó hoàn thành.

    Program Counter Register

    PC Register chứa địa chỉ của chỉ dẫn đang được thực hiện từ máy ảo Java. Khi chương trình Java được thực thi trên JVM, PC Register sẽ lưu trữ địa chỉ của lệnh tiếp theo mà chương trình sẽ thực thi. Khi lệnh hiện tại được thực thi, giá trị của PC Register sẽ được cập nhật để trỏ tới địa chỉ của lệnh tiếp theo trong chương trình.

    Native Method Stack

    Nó chứa tất cả các phương thức native được sử dụng trong ứng dụng.

    Execution Engine

    Nó bao gồm:

    • Một bộ xử lý ảo (virtual processor)
    • Trình thông dịch: Đọc luồng bytecode sau đó thực thi các hướng dẫn.
    • Trình biên dịch Just-In-Time (JIT): Được sử dụng để cải thiện hiệu suất. JIT biên dịch các phần của bytecode có chức năng tương tự cùng một lúc, giảm thời gian cần thiết cho biên dịch. Ở đây, thuật ngữ “trình biên dịch” đề cập đến một trình dịch từ bộ chỉ thị của máy ảo Java (JVM) sang bộ chỉ thị của một CPU cụ thể.

    Java Native Interface

    Java Native Interface (JNI) là một framework cung cấp một giao diện (interface) để giao tiếp với một ứng dụng khác được viết bằng một ngôn ngữ khác như C, C ++, Assembly… Java sử dụng khung JNI để gửi đầu ra đến Console hoặc tương tác với thư viện hệ điều hành.

    Tìm hiểu thêm: JDK Là Gì? Đây Là Những Thông Tin Bạn Cần Biết!

    Cách hoạt động của JVM trong Java

    Java Virtual Machine (JVM) đọc và thực thi mã bytecode được tạo ra từ mã nguồn Java sau khi được biên dịch. Khi chương trình Java được biên dịch, nó sẽ tạo ra một tệp mã bytecode, chứa các mã lệnh được mã hóa dưới dạng byte. JVM sẽ lấy tệp này và dịch nó thành mã máy tính để thực thi trên hệ thống.

    Jvm La Gi Rikkei Academy
    Cách hoạt động của JVM

    Cách tải JVM là gì?

    Với JVM, bạn sẽ không cài đặt một cách độc lập. Khi bạn tải và cài đặt JRE hoặc JDK thì JVM cũng được tải và cài đặt đồng thời. Việc tải JRE hoặc JDK sẽ phụ thuộc vào nhu cầu của bạn.

    Nếu bạn chỉ muốn chạy các ứng dụng Java mà không phải phát triển hoặc sửa đổi mã nguồn, bạn có thể tải và cài đặt JRE để sử dụng JVM.

    Nếu bạn muốn phát triển các ứng dụng Java hoặc sử dụng các công cụ phát triển như trình biên dịch và trình gỡ lỗi, bạn cần tải và cài đặt JDK.

    Tìm hiểu: Lộ trình học lập trình Java cơ bản

    Kết luận

    Qua bài viết này, Rikkei Academy đã cung cấp các thông tin cơ bản về JVM là gì, bao gồm khái niệm, nhiệm vụ, cách hoạt động và cấu trúc của JVM trong Java. Hy vọng qua đó đã giúp bạn hiểu rõ hơn về nền tảng Java nói riêng và ngôn ngữ lập trình Java nói chung.

    Nếu bạn đang muốn tìm kiếm khóa học Java với lộ trình tinh gọn, kiến thức, kỹ năng bám sát thực tế và cam kết việc làm thì hãy tham khảo Rikkei Academy! Để biết thêm thông tin chi tiết về khóa học lập trình tại Rikkei Academy, nhanh tay đăng ký để nhận tư vấn miễn phí ngay nhé!

    Nguồn tham khảo:

    https://www.javatpoint.com/jvm-java-virtual-machine

    https://www.w3schools.in/java/java-virtual-machine

    Bài viết cùng chủ đề

    • Cac Nganh Cong Nghe Thong Tin Rikkei Academy 19/06/202304 phút đọc Chi Tiết Các Ngành Công Nghệ Thông Tin: Nên Học Ngành Nào?
    • Front end và back end là gì? 20/12/202204 phút đọc Front end và Back end là gì? Full Stack là gì?
    • Compareto Trong Java Rikkei Academy 21/07/202304 phút đọc CompareTo trong Java: 5 Phút Tìm Hiểu Chi Tiết
    • Jre La Gi Rikkei Academy 31/05/202304 phút đọc JRE là gì? Tìm hiểu chi tiết về Java Runtime Environment
    • Khóa học lập trình web từ cơ bản đến nâng cao 27/12/202204 phút đọc Khóa học lập trình web từ cơ bản đến nâng cao
    • Thread Trong Java Rikkei Academy 18/07/202304 phút đọc Thread trong Java: 5 Phút Giải Mã Tất Tần Tật Về Luồng

    Logorikkei

    Công ty TNHH Rikkei Education

    • Tổ chức quản lý trang thông tin: Công ty TNHH Rikkei Education
    • Quản lý trang thông tin: Nguyễn Văn Nam (phòng Marketing)

     

    Trụ sở Hà Nội: Tầng 7 tháp A toà Sông Đà, đường Phạm Hùng, quận Nam Từ Liêm, Hà Nội

    Hotline: 0862 069 233

    Email: academy@rikkeisoft.com

    Khoá học
    • Cho người mới bắt đầu
    • Lập trình viên Nhật Bản
    • Kỹ sư CNTT – PTIT
    • Data Analysis – HUST
    • IT Fresher – Rikkei Certificate
    Tài nguyên
    • Blog
    • Kiến thức chuyên môn
    • Khám phá Nhật Bản
    • Thông tin sự kiện
    • What’s New – What’s Next?
    Vì sao chọn Rikkei Education
    • Về Rikkei Education
    • Hệ sinh thái Rikkei
    • Nhân sự Rikkei Education
    • Cộng đồng RA Alumni
    • Uơm mầm xanh & CSR
    • Cơ hội nghề nghiệp
    Cơ sở 1

    Tầng 7, khối A tòa nhà Sông Đà, đường Phạm Hùng , Phường Mỹ Đình 1, Quận Nam Từ Liêm, Hà Nội.

    Hotline: 0862 069 233

    Cơ sở 2

    Tầng 22, khối A tòa nhà Sông Đà, đường Phạm Hùng , Phường Mỹ Đình 1, Quận Nam Từ Liêm, Hà Nội.

    Hotline: 086 206 9233

    Cơ sở 3

    Tầng 4, tòa nhà Ricco, số 363 Nguyễn Hữu Thọ, phường Khuê Trung, Quận Cẩm Lệ, Đà Nẵng

    Hotline: 0904 694 869

    Cơ sở 4

    Tầng 12, Tòa nhà Đảm Bảo An Toàn Hàng Hải phía Nam Số 42 đường Tự Cường, phường 4, Tân Bình, TP. Hồ Chí Minh.

    Cơ sở 5

    Tầng 3, toà TSA Bulding, Số 77 Lê Trung Nghĩa, Phường 12, Tân Bình, TP. Hồ Chí Minh.

    Hotline: 0962 703 893

    Cơ sở Fukuoka

    Tokan Fukuoka 2nd Building 417 Hiecho 1-chome-18, Hakata-ku, Fukuoka, Japan

    • Nhắn tin qua Zalo
    • Nhắn tin qua Facebook
    • 086 206 92 33
    Copyright 2024 © Rikkei Academy All rights reserved.
    • Khóa học

      Hướng dẫn bởi những giảng viên chất lượng từ các trường đại học công nghệ top đầu Việt Nam

      Kiểm tra độ phù hợp

      5 phút kiểm tra nhanh liệu bạn có phù hợp với Công nghệ thông tin

      Tìm hiểu thêm
      Cho người mới bắt đầu

      Bắt đầu từ con số 0 với lộ trình học tập trong 6 tháng

      Tìm hiểu thêm
      Lập trình viên Nhật Bản

      Bắt đầu sự nghiệp lập trình với khả năng tiếng Nhật

      Tìm hiểu thêm
      Phân tích dữ liệu - HUST

      Nâng cấp nghiệp vụ, tiến bước sự nghiệp với phân tích dữ liệu

      Tìm hiểu thêm
      Kỹ sư Công nghệ thông tin - PTIT

      Trở thành Kỹ sư Công nghệ thông tin trong thời đại số

      Tìm hiểu thêm
      IT Fresher - Rikkei Certificate

      Trở thành IT Fresher với khởi đầu khác biệt, doanh nghiệp săn đón

      Tìm hiểu thêm
    • Khóa học
    • Tài nguyên
      • Icon1Tài nguyên học tập
        • Blog
        • Kiến thức chuyên môn
        • Khám phá Nhật Bản
      • Icon Menu1Tin tức công nghệ
        • What’s New – What’s Next?
        • Thông tin sự kiện
    • Vì sao chọn Rikkei Education
      • Về Rikkei Education
      • Hệ sinh thái Rikkei
      • Nhân sự Rikkei Education
      • Cộng đồng RA Alumni
      • Ươm mầm xanh & CSR
      • Cơ hội nghề nghiệp
    • Ngôn ngữ
      • Tiếng Việt
      • Tiếng Anh
      • Tiếng Nhật