ความแตกต่างระหว่าง JVM และ JRE

Anonim

JVM กับ JRE

Java เป็นภาษาการเขียนโปรแกรมข้ามแพลตฟอร์ม นอกจากนี้ยังปฏิบัติตามหลักการ "เขียนครั้งเดียวเรียกใช้จากทุกที่" โปรแกรมที่เขียนขึ้นด้วยภาษาจาวาสามารถคอมไพล์เข้าไปใน Java bytecode โดยคอมไพเลอร์ Java จากนั้น bytecode สามารถทำงานบนแพลตฟอร์มที่เรียกใช้ JRE (Java Runtime Environment) JRE รวมถึง JVM (Java Virtual Machine), ไลบรารีฐาน (ซึ่งใช้ Java API) และไฟล์สนับสนุนอื่น ๆ JVM เป็นเครื่องคอมพิวเตอร์แบบย่อ ๆ ที่ทำหน้าที่เป็นตัวกลางระหว่างแพลตฟอร์มเฉพาะ JRE และโค้ด Java

JVM คืออะไร?

JVM คือเครื่องเสมือนที่ใช้โดยเครื่องที่รัน Java bytecode ตาม Sun Microsystems (ผู้พัฒนาจาวาจนกระทั่งถูกซื้อโดย Oracle เมื่อไม่นานมานี้) มีอุปกรณ์ที่เปิดใช้งาน JVM มากกว่า 4 พันล้านเครื่องในโลก โดยเฉพาะอย่างยิ่ง Java Virtual Machine คือเครื่องคอมพิวเตอร์แบบนามธรรมที่ใช้งานบนฮาร์ดแวร์มาตรฐานและระบบปฏิบัติการ หนึ่งในฟังก์ชันที่สำคัญของ JVM คือการจัดการข้อยกเว้นโดยอัตโนมัติ โดยปกติชุดของห้องสมุดมาตรฐานมาพร้อมกับ JVM ในความเป็นจริง JRE เป็นกลุ่มที่มี JVM และคลาสที่ใช้ Java API JVM เป็นองค์ประกอบที่สำคัญมากซึ่งสามารถรองรับการคอมไพล์ครั้งเดียวเรียกใช้จากทุกที่ของภาษาการเขียนโปรแกรม Java ตราบใดที่ JVM กำลังทำงานอยู่โค้ดจาวาของคุณสามารถทำงานได้โดยไม่คำนึงถึงแพลตฟอร์มที่ใช้ในเครื่อง นี่คือเหตุผลที่ Java เรียกว่าภาษาข้ามแพลตฟอร์มหรือหลายแพลตฟอร์ม

JRE คืออะไร?

JRE คือสภาวะแวดล้อมในการรันที่รันโค้ด Java โดยปกติ JRE ประกอบด้วย JVM, คลาสพื้นฐานมาตรฐาน (ที่ใช้ฐาน Java API) และไฟล์สนับสนุนอื่น ๆ ประเภทและโครงสร้างของ JRE ขึ้นอยู่กับระบบปฏิบัติการและสถาปัตยกรรมของ CPU เมื่อรันโค้ด Java JRE จะสื่อสารกับระบบปฏิบัติการซึ่งจะพูดคุยกับส่วนประกอบฮาร์ดแวร์ที่เกี่ยวข้อง การติดตั้ง JRE ในระบบของคุณต้องใช้รหัส java บนเครื่องของคุณ อย่างไรก็ตาม JRE ไม่มีคอมไพเลอร์ดีบักหรือเครื่องมืออื่น ๆ ที่จำเป็นสำหรับการพัฒนาโปรแกรม Java (เช่น appletviewer และ javac) ถ้าคุณต้องการพัฒนาโปรแกรมใน Java คุณต้องมี JDK (Java Development Kit) ซึ่งรวมถึง JRE ด้วย

ความแตกต่างระหว่าง JVM และ JRE คืออะไร?

แม้ว่าในการใช้งานในชีวิตประจำวันข้อกำหนด JVM และ JRE จะใช้สลับกันได้ แต่ก็มีความแตกต่างกัน JVM เป็นเครื่องเสมือนที่รันอยู่ด้านบนของระบบปฏิบัติการขณะที่ JRE เป็นสภาพแวดล้อมรันไทม์ JVM เป็นส่วนหนึ่งของ JRE ข้อกำหนด JVM ทำหน้าที่เป็นตัวเชื่อมโยงระหว่างการใช้ JRE กับแพลตฟอร์มเฉพาะและไลบรารี Java มาตรฐานดังนั้น JVM คือเอนทิตีที่ให้ข้อมูล abstraction จากรายละเอียดการใช้งานภายในกับโปรแกรมเมอร์ และมีหน้าที่รับผิดชอบในการตีความโควต้าที่รวบรวมไว้ อย่างไรก็ตาม JVM ต้องการไลบรารีฐานและไฟล์สนับสนุนอื่น ๆ เพื่อรันโค้ดไบต์ java แต่บางครั้ง JRE จะถูกระบุเป็นเพียงการใช้ JVM