JDK vs JRE vs JVM trong Java - Sự khác biệt giữa chúng
Sự khác biệt chính giữa JDK, JRE và JVM
- JDK là một bộ công cụ phát triển phần mềm trong khi JRE là một gói phần mềm cho phép Java chương trình để chạy, trong khi JVM là môi trường để thực thi bytecode.
- Hình thức đầy đủ của JDK là Java Bộ công cụ phát triển, trong khi hình thức đầy đủ của JRE là Java Môi trường thời gian chạy, trong khi hình thức đầy đủ của JVM là Java Máy ảo.
- JDK và JRE phụ thuộc vào nền tảng, trong khi JVM không phụ thuộc vào nền tảng ở cấp độ bytecode nhưng phụ thuộc vào các triển khai dành riêng cho nền tảng.
- JDK chứa các công cụ để phát triển, gỡ lỗi, v.v. JRE chứa các thư viện lớp và các tệp hỗ trợ khác, trong khi các công cụ phát triển phần mềm không có trong JVM.
- JDK đi kèm với trình cài đặt, mặt khác, JRE chỉ chứa môi trường để thực thi mã nguồn trong khi JVM được gói trong cả phần mềm JDK và JRE.
JDK là gì?
JDK là một môi trường phát triển phần mềm được sử dụng để tạo các applet và Java ứng dụng. Hình thức đầy đủ của JDK là Java Bộ dụng cụ phát triển. Java các nhà phát triển có thể sử dụng nó trên Windows, macOS, Solarisvà Linux. JDK giúp họ viết mã và chạy Java các chương trình. Có thể cài đặt nhiều phiên bản JDK trên cùng một máy tính.
JRE là gì?
JRE là một phần mềm được thiết kế để chạy các phần mềm khác. Nó chứa các thư viện lớp, lớp trình tải và JVM. Nói một cách đơn giản, nếu bạn muốn chạy Java chương trình bạn cần JRE. Nếu bạn không phải là một lập trình viên, bạn không cần phải cài đặt JDK, nhưng chỉ cần chạy JRE Java chương trình. Mặc dù vậy, tất cả các phiên bản JDK đều đi kèm Java Môi trường thời gian chạy, do đó bạn không cần phải tải xuống và cài đặt JRE riêng biệt trong PC của mình. JRE đầy đủ là Java Môi trường chạy.
JVM là gì?
JVM là một công cụ cung cấp môi trường thời gian chạy để điều khiển Java Mã hoặc ứng dụng. Nó chuyển đổi Java bytecode thành ngôn ngữ máy. JVM là một phần của Java Run Environment (JRE). Không thể tải xuống và cài đặt riêng. Để cài đặt JVM, bạn cần cài đặt JRE. JVM đầy đủ là Java Máy ảo.
Trong nhiều ngôn ngữ lập trình khác, trình biên dịch tạo ra mã máy cho một hệ thống cụ thể. Tuy nhiên, Java Trình biên dịch tạo ra mã cho máy ảo được gọi là JVM.
Tại sao nên sử dụng JDK?
Dưới đây là những lý do quan trọng của việc sử dụng JDK:
- JDK chứa các công cụ cần thiết để viết Java chương trình và JRE để thực thi chúng.
- Nó bao gồm một trình biên dịch, Java trình khởi chạy ứng dụng, Appletviewer, v.v.
- Trình biên dịch chuyển đổi mã được viết bằng Java thành mã byte.
- Java trình khởi chạy ứng dụng mở JRE, tải lớp cần thiết và thực thi phương thức chính của nó.
Tại sao nên sử dụng JRE?
Dưới đây là những lý do quan trọng của việc sử dụng JRE:
- JRE chứa các thư viện lớp, JVM và các tệp hỗ trợ khác. Nó không chứa bất kỳ công cụ nào cho Java phát triển như trình gỡ lỗi, trình biên dịch, v.v.
- Nó sử dụng các lớp gói quan trọng như math, swingetc, util, lang, awt và các thư viện thời gian chạy.
- Nếu bạn phải chạy Java applet thì JRE phải được cài đặt trong hệ thống của bạn.
Tại sao lại là JVM?
Dưới đây là những lý do quan trọng của việc sử dụng JVM:
- JVM cung cấp cách thực thi độc lập với nền tảng Java mã nguồn.
- Nó có nhiều thư viện, công cụ và framework.
- Một khi bạn chạy Java chương trình, bạn có thể chạy trên bất kỳ nền tảng nào và tiết kiệm rất nhiều thời gian.
- JVM đi kèm với trình biên dịch JIT (Just-in-Time) có chức năng chuyển đổi Java mã nguồn thành ngôn ngữ máy cấp thấp. Do đó, nó chạy nhanh hơn như một ứng dụng thông thường.
Các tính năng của JDK
Dưới đây là các tính năng quan trọng của JDK:
- Nó cho phép bạn xử lý nhiều tiện ích mở rộng trong một khối bắt duy nhất.
- JDK bao gồm tất cả các tính năng mà JRE có.
- Nó chứa các công cụ phát triển như trình biên dịch, trình gỡ lỗi, v.v.
- JDK cung cấp môi trường để phát triển và thực thi Java mã nguồn.
- Nó có thể được cài đặt trên Windows, hệ điều hành Unix và Mac.
- Toán tử kim cương có thể được sử dụng để chỉ định giao diện kiểu chung thay vì viết giao diện chính xác.
Đặc điểm của JRE
Dưới đây là những tính năng quan trọng của JRE:
- Java Môi trường thời gian chạy là một tập hợp các công cụ mà JVM thực sự sử dụng để chạy.
- JRE chứa công nghệ triển khai, bao gồm Java Web Bắt đầu và Java Cắm vào.
- Các nhà phát triển có thể dễ dàng chạy mã nguồn trong JRE, nhưng anh ta/cô ta không thể viết và biên dịch Java chương trình.
- Nó bao gồm các thư viện tích hợp như Java Kết nối cơ sở dữ liệu (JDBC), Gọi phương thức từ xa (RMI), Java Giao diện đặt tên và thư mục (JNDI) và nhiều hơn nữa.
- JRE có JVM và Java Máy khách máy ảo HotSpot.
Các tính năng của JVM
Dưới đây là các tính năng quan trọng của JVM:
- Nó cho phép bạn chạy các ứng dụng trong môi trường đám mây hoặc trong thiết bị của bạn.
- Java Máy ảo chuyển đổi mã byte thành mã dành riêng cho máy.
- Nó cung cấp các chức năng java cơ bản như quản lý bộ nhớ, bảo mật, thu gom rác, v.v.
- JVM chạy chương trình bằng cách sử dụng các thư viện và tệp được cung cấp bởi Java Môi trường chạy.
- JDK và JRE đều chứa Java Máy ảo.
- Nó có thể thực thi từng dòng chương trình java do đó nó còn được gọi là trình thông dịch.
- Ví dụ: JVM có thể dễ dàng tùy chỉnh, bạn có thể phân bổ bộ nhớ tối thiểu và tối đa cho nó.
- Nó độc lập với phần cứng và hệ điều hành. Vì vậy, bạn có thể viết chương trình java một lần và chạy ở mọi nơi.
JDK hoạt động như thế nào?
Dưới đây là các thành phần quan trọng của JDK:
- JDK và JRE:JDK cho phép các lập trình viên tạo ra lõi Java các chương trình có thể chạy bằng JRE, bao gồm JVM và các thư viện lớp.
- Thư viện lớp: Đây là một nhóm các thư viện có thể tải động Java chương trình có thể gọi khi chạy.
- Trình biên dịch: Nó là một Java chương trình chấp nhận tập tin văn bản của nhà phát triển và biên dịch thành Java tệp lớp. Đây là dạng đầu ra phổ biến do trình biên dịch đưa ra, chứa Java mã byte. Trong Java, trình biên dịch chính là Javac.
- Trình gỡ lỗi: Trình gỡ lỗi là một Java chương trình cho phép các nhà phát triển thử nghiệm và gỡ lỗi Java chương trình.
- JavaTiến sĩ: JavaDoc là tài liệu do Sun Microsystems thực hiện cho Java. JavaDoc có thể được sử dụng để tạo tài liệu API trong tệp HTML từ chương trình nguồn
JRE hoạt động như thế nào?
JRE có một phiên bản của JVM, các lớp thư viện và các công cụ phát triển. Khi bạn viết và biên dịch Java mã, trình biên dịch sẽ tạo ra một tệp lớp có mã byte.
Dưới đây là các thành phần quan trọng của JRE:
- Trình nạp lớp: Bộ nạp lớp tải các lớp khác nhau cần thiết để chạy một Java chương trình. JVM sử dụng ba trình nạp lớp gọi là trình nạp lớp bootstrap, trình nạp lớp mở rộng và trình nạp lớp hệ thống.
- Trình xác minh mã byte: Trình xác minh mã byte xác minh mã byte để mã không làm phiền trình thông dịch.
- Thông dịch viên: Sau khi các lớp được tải và mã được xác minh, trình thông dịch sẽ đọc từng dòng mã.
- Thời gian chạy: Thời gian chạy là một hệ thống được sử dụng chủ yếu trong lập trình để mô tả khoảng thời gian mà một chương trình cụ thể đang chạy.
- Phần cứng: Một khi bạn biên dịch Java mã gốc, chạy trên nền tảng phần cứng cụ thể.
Theo cách này, Java chương trình chạy trong JRE.
JVM hoạt động như thế nào?
Dưới đây là các thành phần quan trọng của JVM:
1) Trình nạp lớp
Trình tải lớp là một hệ thống con được sử dụng để tải các tệp lớp. Nó thực hiện ba chức năng chính là Tải, Liên kết và Khởi tạo.
2) Khu vực phương pháp
Khu vực phương thức JVM lưu trữ cấu trúc của lớp như siêu dữ liệu, mã cho Java phương pháp và nhóm thời gian chạy liên tục.
3) Đống
Tất cả các Đối tượng, mảng và biến thể hiện được lưu trữ trong một đống. Bộ nhớ này được chia sẻ trên nhiều chủ đề.
4) Ngăn xếp ngôn ngữ JVM
Java Ngôn ngữ Stack lưu trữ các biến cục bộ và kết quả một phần của nó. Mỗi luồng đều có ngăn xếp ngôn ngữ JVM riêng, được tạo đồng thời khi luồng được tạo. Một khung mới được tạo khi phương thức được gọi và nó bị xóa khi quá trình gọi phương thức hoàn tất.
5) Thanh ghi PC
PC đăng ký lưu trữ địa chỉ của Java hướng dẫn máy ảo, hiện đang thực thi. Trong Java, mỗi luồng có thanh ghi PC riêng.
6) Ngăn xếp phương thức gốc
Ngăn xếp phương thức gốc chứa hướng dẫn của mã gốc tùy thuộc vào thư viện gốc. Nó phân bổ bộ nhớ trên các vùng nhớ gốc hoặc sử dụng bất kỳ loại ngăn xếp nào.
7) Công cụ thực thi
Nó là một loại phần mềm được sử dụng để kiểm tra phần mềm, phần cứng hoặc hệ thống hoàn chỉnh. Công cụ thực hiện thử nghiệm không bao giờ mang bất kỳ thông tin nào về sản phẩm được thử nghiệm.
8) Giao diện Phương thức gốc
Giao diện phương thức gốc là một khung lập trình. Nó cho phép Java mã đang chạy trong JVM để các thư viện và ứng dụng gốc gọi.
9) Thư viện phương thức gốc
Thư viện bản địa là một bộ sưu tập các Thư viện bản địa (C, C++), là những thông tin cần thiết cho Công cụ thực thi.
Sự khác biệt giữa JDK, JRE và JVM
Dưới đây là những khác biệt chính giữa JDK so với JRE và JVM:
JDK | JRE | JVM |
---|---|---|
Hình thức đầy đủ của JDK là Java Bộ dụng cụ phát triển. | Hình thức đầy đủ của JRE là Java Môi trường chạy. | Hình thức đầy đủ của JVM là Java Máy ảo. |
JDK là một bộ công cụ phát triển phần mềm để phát triển các ứng dụng trong Java. | Đây là một gói phần mềm cung cấp Java thư viện lớp với các thành phần cần thiết để chạy Java Mã. | JVM thực thi Java mã byte và cung cấp môi trường để thực thi mã đó. |
JDK phụ thuộc vào nền tảng. | JRE cũng phụ thuộc vào nền tảng. | JVM không phụ thuộc vào nền tảng. |
Nó chứa các công cụ để phát triển, gỡ lỗi và giám sát mã java. | Nó chứa các thư viện lớp và các tệp hỗ trợ khác mà JVM yêu cầu để thực thi chương trình. | Các công cụ phát triển phần mềm không có trong JVM. |
Nó là superset của JRE | Nó là tập hợp con của JDK. | JVM là một tập hợp con của JRE. |
JDK cho phép các nhà phát triển tạo ra Java các chương trình có thể được thực thi và chạy bởi JRE và JVM. | JRE là một phần của Java tạo ra JVM. | Nó là Java thành phần nền tảng thực thi mã nguồn. |
JDK đi kèm với trình cài đặt. | JRE chỉ chứa môi trường để thực thi mã nguồn. | JVM được tích hợp trong cả phần mềm JDK và JRE. |