JVM, JDK, JRE: Có gì khác biệt giữa chúng?

Chúng tôi rất vui mừng được chia sẻ kiến thức sâu sắc về từ khóa Java jdk la gi và hi vọng rằng nó sẽ hữu ích cho các bạn đọc. Bài viết tập trung trình bày ý nghĩa, vai trò và ứng dụng của từ khóa trong việc tối ưu hóa nội dung trang web và chiến dịch tiếp thị trực tuyến. Chúng tôi cung cấp các phương pháp tìm kiếm, phân tích và chọn lọc từ khóa phù hợp, kèm theo các chiến lược và công cụ hữu ích. Hi vọng rằng thông tin chúng tôi chia sẻ sẽ giúp bạn xây dựng chiến lược thành công và thu hút lưu lượng người dùng. Cảm ơn sự quan tâm và hãy tiếp tục theo dõi blog của chúng tôi để cập nhật kiến thức mới nhất.

Ba thành phần nền tảng Java không thể thiếu và cách chúng hoạt động cùng nhau trong các ứng dụng Java của bạn Các nhà phát triển mới sử dụng Java thường tự hỏi có gì khác biệt Java Virtual Machine, Java Development Kit, Java Runtime Environment. Họ cũng tò mò về phong thái ba thành phần nền tảng Java này hoạt động cùng nhau trong các ứng dụng Java. Cuối cùng, các nhà phát triển nên biết họ sẽ tương tác với từng thành phần ra làm sao.

Bạn Đang Xem: JVM, JDK, JRE: Có gì khác biệt giữa chúng?

Nói ngắn gọn:

  • JVM là thành phần nền tảng Java thực thi các lớp học của bạn.
  • JRE khởi tạo JVM và đảm bảo các phụ thuộc có sẵn cho những lớp học của bạn.
  • JDK được chấp nhận bạn tạo các lớp học Java có thể được thực thi và chạy bởi JVM và JRE.

Là nhà phát triển, các bạn sẽ thao tác với JDK để viết các ứng dụng của mình và với JVM để gỡ lỗi và tối ưu hóa chúng, nhất là về hiệu năng. JRE chủ yếu chạy ở quyết sách nền, nhưng chúng ta có thể sử dụng nó để theo dõi ứng dụng và cấu hình bộ nhớ.

JVM quản lý bộ nhớ khối hệ thống và cung cấp môi trường tự nhiên thực thi di động cho những ứng dụng dựa trên Java

Sử dụng và khái niệm JVM

JVM có hai chức năng chính: được chấp nhận các lớp học Java chạy trên mọi thiết bị hoặc hệ điều hành (được gọi là nguyên tắc “Viết một lần, chạy mọi nơi”) và để quản lý và tối ưu hóa bộ nhớ lớp học

Quản lí bộ nhớ trong JVM

Tương tác phổ quát nhất với JVM đang hoạt động là kiểm tra mức sử dụng bộ nhớ trong heap và stack. Kiểm soát và điều chỉnh phổ quát nhất là kiểm soát và điều chỉnh các tùy chỉnh cấu hình bộ nhớ của JVM.

Thu gom rác(Garbage collection)

Trước Java, tất cả bộ nhớ lớp học được quản lý bởi lập trình viên. Trong Java, bộ nhớ lớp học được quản lý bởi JVM. JVM quản lý bộ nhớ thông qua một quá trình gọi là bộ sưu tập rác(garbage collection), liên tục xác định và loại bỏ bộ nhớ không sử dụng trong các lớp học Java. Việc thu gom rác xẩy ra bên trong một JVM đang hoạt động.

Tải và thực thi class files trong JVM

Java class loader trong JVM

Mọi thứ trong java là một lớp(class), và tất cả những ứng dụng Java được xây dựng từ các lớp(classes). Một ứng dụng có thể gồm có một lớp hoặc hàng ngàn lớp. Để chạy một ứng dụng Java, JVM phải tải các tệp .class đã biên dịch vào context, ví như một sever, nơi chúng có thể được truy cập. Một JVM phụ thuộc vào trình tải lớp của nó để thực hiện chức năng này.

Xem Thêm : Khẩu độ F trên máy ảnh có nghĩa là gì

Trình tải lớp Java là một phần của JVM tải các lớp vào bộ nhớ và làm cho chúng có sẵn để thực thi. Trình nạp lớp sử dụng các kỹ thuật như lazy-loading và caching để làm cho việc tải lớp hiệu quả nhất có thể.

Dụng cụ thực thi trong JVM(The execution engine in the JVM)

Khi trình tải lớp đã hoàn thành công việc tải các lớp, JVM mở màn thực thi mã trong mỗi lớp. Dụng cụ thực thi là thành phần JVM xử lý chức năng này. Dụng cụ thực thi là điều cấp thiết cho JVM đang hoạt động. Mã thực thi liên quan đến việc quản lý truy cập vào tài nguyên khối hệ thống. Dụng cụ thực thi JVM nằm trong lòng lớp học đang hoạt động – với nhu cầu về tài nguyên tệp, mạng và bộ nhớ – và hệ điều hành, cung cấp các tài nguyên đó.

Cách dụng cụ thực thi quản lý tài nguyên khối hệ thống

Tài nguyên khối hệ thống có thể được chia thành hai loại lớn: bộ nhớ và mọi thứ khác.

Hãy nhớ lại rằng JVM chịu trách nhiệm xử lý bộ nhớ không sử dụng và bộ sưu tập rác(garbage collection) là cơ chế thực hiện việc xử lý đó. JVM cũng chịu trách nhiệm phân bổ và duy trì cấu trúc tham chiếu mà nhà phát triển được cấp. Ví dụ, dụng cụ thực thi của JVM chịu trách nhiệm lấy một chiếc gì đó giống như từ khóa new trong Java và biến nó thành một yêu cầu dành riêng cho hệ điều hành để cấp phép bộ nhớ.

Ngoài bộ nhớ, dụng cụ thực thi quản lý tài nguyên để truy cập khối hệ thống tệp và network I/O . Do JVM có thể tương tác trên các hệ điều hành, nên đây không phải là nhiệm vụ . Ngoài nhu cầu tài nguyên của từng ứng dụng, dụng cụ thực thi phải đáp ứng với từng môi trường tự nhiên HĐH.

JRE tạo JVM và đảm bảo các phụ thuộc có sẵn cho những lớp học Java của bạn. Thực tế mà nói, runtime enviroment là một phần mềm được thiết kế để chạy các phần mềm khác. Là runtime enviroment cho Java, JRE chứa các thư viện lớp Java, trình tải lớp Java và Máy ảo Java. Trong khối hệ thống này:

  • Trình tải lớp chịu trách nhiệm tải xác thực các lớp và kết nối chúng với những thư viện lớp Java cốt lõi.
  • JVM chịu trách nhiệm đảm bảo các ứng dụng Java có tài nguyên mà chúng cần để chạy và hoạt động tốt trong thiết bị hoặc môi trường tự nhiên đám mây của bạn.
  • JRE chủ yếu là một thùng chứa cho những thành phần khác và chịu trách nhiệm điều phối các hoạt động sinh hoạt của chúng.

Runtime Enviroment là gì?

Một lớp học phần mềm cần phải thực thi và để thực hiện nó cần một môi trường tự nhiên để chạy. Runtime Enviroment tải các tệp lớp và đảm bảo có quyền truy cập vào bộ nhớ và các tài nguyên khối hệ thống khác để chạy chúng. Trước đó, hồ hết các phần mềm đều sử dụng hệ điều hành (HĐH) làm Runtime Enviroment. Khóa học chạy bên trong bất kỳ máy tính nào được bật, nhưng dựa vào tùy chỉnh cấu hình hệ điều hành để truy cập tài nguyên. Tài nguyên trong trường hợp này sẽ là những thứ như bộ nhớ và tệp lớp học và dependencies. Java Runtime Enviroment đã thay đổi tất cả, ít nhất là so với các lớp học Java.

JRE chứa các thư viện và phần mềm mà các lớp học Java của bạn phải chạy. Ví dụ, trình tải lớp Java là một phần của Java Runtime Environment. Phần mềm quan trọng này tải mã Java được biên dịch vào bộ nhớ và kết nối mã với những thư viện lớp Java thích hợp.

Cách JRE hoạt động với JVM

Java Virtual Machine là một khối hệ thống phần mềm đang hoạt động chịu trách nhiệm thực thi các lớp học Java trực tiếp. JRE là khối hệ thống trên đĩa lấy mã Java của bạn, phối hợp nó với những thư viện cấp thiết và phát động JVM để thực thi nó.

Bộ nhớ Java và JRE

Xem Thêm : Bột Béo Là Gì? Cách Sử Dụng Bột Béo Không Phải Ai Cũng Biết

Bộ nhớ Java gồm có ba thành phần: heap, stack và metaspace (trước kia được gọi là permgen).

  • Metaspace là nơi Java giữ thông tin không thay đổi của lớp học như các khái niệm lớp.
  • Không gian heap (Heap space) là nơi Java giữ nội dung biến(variable content).
  • Không gian ngăn xếp (Stack space) là nơi Java lưu trữ thực thi hàm(function execution) và tham chiếu biến(variable references).

Quản lý bộ nhớ trong java 8

Cho tới Java 8, metaspace được nghe biết như thể permgen. Bên cạnh việc là một chiếc tên hay hơn nhiều, metaspace là một thay đổi quan trọng so với cách các nhà phát triển tương tác với không gian bộ nhớ của Java. Trước đó, các bạn sẽ sử dụng lệnh * java -XX: MaxPermSize* để theo dõi kích thước của không gian permgen. Từ Java 8 trở đi, Java sẽ tự động hóa tăng kích thước của metaspace để đáp ứng nhu cầu meta của lớp học của bạn. Java 8 cũng giới thiệu một cờ mới, MaxMetaspaceSize, có thể được sử dụng để giới hạn kích thước metaspace.

Các tùy chọn bộ nhớ khác, heap và stack, vẫn giữ nguyên trong Java 8.

Cấu hình không gian heap(Configuring heap space)

Không gian heap là phần động nhất của khối hệ thống bộ nhớ Java. Bạn cũng có thể sử dụng các cờ -Xms và -Xmx để cho Java biết mức độ lớn để mở màn heap và mức độ lớn để được chấp nhận nó trở thành. Hiểu cách kiểm soát và điều chỉnh các cờ này cho những nhu cầu lớp học cụ thể là một khía cạnh quan trọng của quản lý bộ nhớ trong Java. Ý tưởng là làm cho heap đủ lớn để garbage collection hoạt động hiệu quả nhất. Đó là, bạn muốn được chấp nhận đủ bộ nhớ để cho lớp học chạy, nhưng bạn không muốn nó to nhiều hơn mức cấp thiết.

Cấu hình không gian ngăn xếp(Configuring stack space)

Không gian ngăn xếp là nơi các hàm gọi và tham chiếu biến được xếp hàng. Không gian ngăn xếp là nguồn gốc của lỗi nổi tiếng thứ hai trong lập trình Java: ngoại lệ tràn ngăn xếp (trước nhất là ngoại lệ con trỏ null). Ngoại lệ tràn ngăn xếp chỉ ra rằng bạn đã không còn dung tích ngăn xếp vì quá nhiều phần đã được bảo lưu. Thông thường, các bạn sẽ nhận được một ngăn xếp tràn khi một phương thức hoặc phương thức gọi nhau theo phong cách vòng tròn, do đó dành riêng một số lượng lớn các lệnh gọi hàm ngày càng tăng vào ngăn xếp.

Bạn sử dụng công tắc nguồn -Xss để định cấu hình kích thước mở màn ngăn xếp. Ngăn xếp sau đó phát triển linh hoạt theo nhu cầu của lớp học.

JDK là một thành phần nền tảng chính để xây dựng các ứng dụng Java. Trái tim của nó là trình biên dịch Java. Java Development Kit (JDK) là một trong ba gói công nghệ cốt lõi được sử dụng trong lập trình Java, cùng với JVM (Java Virtual Machine) và JRE (Java Runtime Environment)

JRE có thể được sử dụng như một thành phần độc lập để chạy các lớp học Java, nhưng nó cũng là một phần của JDK. JDK yêu cầu JRE vì chạy các lớp học Java là một phần của việc phát triển chúng. Các khái niệm:

  • Khái niệm kỹ thuật: JDK là một triển khai của đặc tả nền tảng Java, gồm có các trình biên dịch và thư viện lớp.
  • Khái niệm hàng ngày: JDK là gói phần mềm bạn tải xuống để tạo các ứng dụng dựa trên Java.

Nguồn tham khảo: https://www.javaworld.com/article/3272244/what-is-the-jvm-introducing-the-java-virtual-machine.html https://www.javaworld.com/article/3296360/what-is-the-jdk-introduction-to-the-java-development-kit.html https://www.javaworld.com/article/3304858/what-is-the-jre-introduction-to-the-java-runtime-environment.html

You May Also Like

About the Author: v1000