Sự khác biệt giữa JVM và JRE
JVM vs JRE
Java là một ngôn ngữ lập trình đa nền tảng. Nó cũng tuân thủ nguyên tắc "viết một lần, chạy bất cứ nơi nào". Chương trình được viết bằng Java có thể được biên dịch thành Java bytecode bởi trình biên dịch Java. Sau đó, bytecode có thể được thực hiện trên bất kỳ nền tảng nào chạy JRE (Java Runtime Environment). JRE bao gồm JVM (Java Virtual Machine), các thư viện cơ sở (thực hiện Java API) và các tệp hỗ trợ khác. JVM là một máy tính trừu tượng hoạt động như một trung gian giữa các nền tảng JRE cụ thể và mã Java.
JVM là gì?
JVM là một loại máy ảo được sử dụng bởi các máy để thực hiện Java bytecode. Theo Sun Microsystems (người đã phát triển Java cho đến khi nó được Oracle mua lại, gần đây), có hơn 4 tỷ thiết bị hỗ trợ JVM trên thế giới. Cụ thể hơn, máy ảo Java là một máy tính trừu tượng được thực hiện trên phần cứng tiêu chuẩn và hệ điều hành. Một trong những chức năng quan trọng của JVM là xử lý ngoại lệ tự động. Thông thường, một bộ sưu tập các thư viện tiêu chuẩn đi kèm với JVM. Trong thực tế, JRE là một bó có chứa JVM và các lớp thực hiện Java API. JVM là một thành phần rất quan trọng, có khả năng biên dịch một lần, chạy ở mọi nơi "của ngôn ngữ lập trình Java. Miễn là JVM đang chạy, mã Java của bạn có thể chạy trên nó, bất kể nền tảng được sử dụng trong máy tính. Đây là lý do tại sao Java được gọi là nền tảng đa nền tảng hoặc đa nền tảng.
JRE là gì?
JRE là môi trường thực hiện mã Java được chạy. Thông thường, JRE bao gồm JVM, các lớp cơ sở tiêu chuẩn (thực hiện cơ sở Java API) và các tệp hỗ trợ khác. Loại và cấu trúc của JRE thay đổi tùy thuộc vào hệ điều hành và kiến trúc CPU. Khi chạy mã Java, JRE sẽ liên lạc với hệ điều hành, do đó sẽ nói chuyện với các thành phần phần cứng tương ứng. Việc cài đặt JRE trên hệ thống của bạn là phải chạy bất kỳ mã java nào trên máy của bạn. Tuy nhiên, JRE không bao gồm trình biên dịch, trình gỡ lỗi hoặc bất kỳ công cụ nào khác cần cho sự phát triển của các chương trình Java (chẳng hạn như appletviewer và javac). Nếu bạn cần phát triển các chương trình trong Java, bạn cần có JDK (Java Development Kit), cũng bao gồm cả JRE.
Sự khác biệt giữa JVM và JRE là gì?
Mặc dù, trong sử dụng hàng ngày, các điều khoản JVM và JRE đang được sử dụng hoán đổi cho nhau, họ có sự khác biệt. JVM là một máy ảo chạy trên đầu trang của hệ điều hành, trong khi JRE là môi trường thực thi thời gian chạy. JVM là một phần của JRE. Các đặc tả JVM đóng vai trò là liên kết giữa việc triển khai JRE với nền tảng cụ thể và các thư viện Java tiêu chuẩn.Do đó, JVM là thực thể cung cấp sự trừu tượng từ các chi tiết thực hiện bên trong cho lập trình viên. Và nó có trách nhiệm giải thích mã byt biên dịch. Tuy nhiên, JVM cần các thư viện cơ sở và các tệp hỗ trợ khác để thực hiện bytecode java. Nhưng đôi khi, JRE chỉ đơn giản được xác định là một thực hiện JVM.