JVM vs JRE
Java là ngôn ngữ lập trình cấp cao, duy nhất theo cách mà các chương trình được viết trên nó có thể được thực thi trên hầu hết mọi nền tảng. Nhưng trước khi bạn có thể chạy chương trình trên máy tính, bạn cần cài đặt một số phần mềm nhất định; một số người gọi nó là JVM, trong khi những người khác sử dụng JRE. Mặc dù hầu hết mọi người đang đề cập đến cùng một điều, có một số khác biệt nhất định giữa JVM và JRE. JVM thực sự là một ứng dụng là một phần của JRE. Để chạy một ứng dụng, bạn cần có JRE, chứa JVM.
JVM là viết tắt của Máy ảo Java và nó tạo ra một máy tính ảo hiểu mã mà các chương trình Java được viết. Các chương trình Java không được viết theo cách thức cụ thể của HĐH. Điều này cung cấp cho nó khả năng chạy trên bất kỳ nền tảng nào nhưng yêu cầu sử dụng JVM để dịch cơ bản các lệnh từ mã byte Java sang mã máy cụ thể.
Không phải mọi thứ cần thiết cho tất cả các chương trình đều có trong JVM. Một số được đặt trong những gì được gọi là lớp gói. Các gói như AWT, Swing, lang và nhiều gói khác cung cấp các khả năng phức tạp hơn cho JVM. Khi bạn kết hợp tất cả các tệp hỗ trợ này cùng với JVM, đó là cái được gọi là Môi trường thời gian chạy JRE hoặc Java. Theo các thuật ngữ đơn giản nhất, JRE là sự kết hợp của JVM và nhiều tệp hỗ trợ như các gói cung cấp môi trường mà chương trình Java có thể chạy.
Do người dùng cuối không có khả năng chỉnh sửa hoặc tạo các ứng dụng Java, JRE không chứa bất kỳ tệp nào liên quan đến mã hóa, kiểm tra và gỡ lỗi các ứng dụng Java; tất cả những gì nằm trong gói phần mềm Java khác. Điều này giảm thiểu kích thước của JRE để giúp hầu hết người dùng tải xuống và cài đặt JRE dễ dàng và nhanh hơn. Mỗi nền tảng phần mềm (tức là Windows, Linux, Mac) có JRE và JVM riêng, chỉ hoạt động trên nó và không hoạt động. Vì vậy, bạn nên chú ý tải xuống một JRE cụ thể cho HĐH mà bạn có. Mỗi phiên bản JRE sẽ luôn chứa JVM bổ sung của nó, do đó không có nghi ngờ gì về việc lấy JVM sai.
Tóm lược:
1.JVM chỉ là một phần của JRE
2.JRE chứa các lớp gói Java ngoài JVM