JDK กับ JRE กับ JVM ใน Java – ความแตกต่างระหว่างพวกเขา

ความแตกต่างที่สำคัญระหว่าง JDK, JRE และ JVM

  • JDK เป็นชุดพัฒนาซอฟต์แวร์ในขณะที่ JRE เป็นชุดซอฟต์แวร์ที่อนุญาต Java โปรแกรมที่จะรันในขณะที่ JVM เป็นสภาพแวดล้อมสำหรับการเรียกใช้งาน bytecode
  • JDK แบบเต็มคือ Java Development Kit ในขณะที่ JRE เต็มรูปแบบคือ Java Runtime Environment ในขณะที่ JVM เต็มรูปแบบคือ Java เครื่องเสมือน
  • JDK และ JRE ขึ้นอยู่กับแพลตฟอร์ม ในขณะที่ JVM ไม่ขึ้นอยู่กับแพลตฟอร์มที่ระดับไบต์โค้ด แต่ขึ้นอยู่กับการใช้งานเฉพาะแพลตฟอร์ม
  • JDK มีเครื่องมือสำหรับการพัฒนา การดีบัก ฯลฯ JRE มีคลาสไลบรารีและไฟล์สนับสนุนอื่นๆ ในขณะที่เครื่องมือการพัฒนาซอฟต์แวร์ไม่รวมอยู่ใน JVM
  • JDK มาพร้อมกับโปรแกรมติดตั้ง ในทางกลับกัน JRE มีเฉพาะสภาพแวดล้อมในการรันซอร์สโค้ดในขณะที่ JVM รวมอยู่ในซอฟต์แวร์ JDK และ JRE

เจดีเค คืออะไร?

JDK เป็นสภาพแวดล้อมการพัฒนาซอฟต์แวร์ที่ใช้สำหรับสร้างแอปเพล็ตและ Java การใช้งาน JDK แบบเต็มคือ Java ชุดพัฒนา. Java นักพัฒนาสามารถใช้งานได้ Windows, macOS, Solarisและลินุกซ์ JDK ช่วยให้พวกเขาเขียนโค้ดและรัน Java โปรแกรม สามารถติดตั้ง JDK มากกว่าหนึ่งเวอร์ชันบนคอมพิวเตอร์เครื่องเดียวกันได้

JRE คืออะไร?

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

JVM คืออะไร?

JVM เป็นเอ็นจิ้นที่ให้สภาพแวดล้อมรันไทม์ในการขับเคลื่อน Java รหัสหรือแอปพลิเคชัน มันแปลง Java bytecode เป็นภาษาเครื่อง JVM เป็นส่วนหนึ่งของ Java เรียกใช้สภาพแวดล้อม (JRE) ไม่สามารถดาวน์โหลดและติดตั้งแยกกันได้ ในการติดตั้ง JVM คุณต้องติดตั้ง JRE JVM รูปแบบเต็มคือ Java เครื่องเสมือน.

ในภาษาโปรแกรมอื่นๆ หลายภาษา คอมไพลเลอร์จะสร้างรหัสเครื่องสำหรับระบบเฉพาะ อย่างไรก็ตาม, Java คอมไพเลอร์สร้างโค้ดสำหรับเครื่องเสมือนซึ่งเรียกว่า JVM

ทำไมต้องใช้ JDK?

นี่คือเหตุผลสำคัญในการใช้ JDK:

  • JDK มีเครื่องมือที่จำเป็นในการเขียน Java โปรแกรมและ JRE เพื่อดำเนินการ
  • ประกอบด้วยคอมไพเลอร์, Java ตัวเรียกใช้งานแอปพลิเคชัน Appletviewer ฯลฯ
  • คอมไพเลอร์แปลงโค้ดที่เขียนเป็น Java ลงในรหัสไบต์
  • Java ตัวเรียกใช้งานแอปพลิเคชันจะเปิด JRE โหลดคลาสที่จำเป็น และดำเนินการตามวิธีการหลัก

ทำไมต้องใช้ JRE?

นี่คือเหตุผลสำคัญในการใช้ JRE:

  • JRE มีคลาสไลบรารี JVM และไฟล์สนับสนุนอื่นๆ ไม่มีเครื่องมือใด ๆ สำหรับ Java การพัฒนา เช่น ดีบักเกอร์ คอมไพเลอร์ ฯลฯ
  • ใช้คลาสแพ็กเกจที่สำคัญเช่น math, swingetc, util, lang, awt และไลบรารีรันไทม์
  • หากต้องวิ่ง. Java แอปเพล็ต ดังนั้นต้องติดตั้ง JRE ในระบบของคุณ

ทำไมต้องเจวีเอ็ม?

นี่คือเหตุผลสำคัญในการใช้ JVM:

  • JVM จัดเตรียมวิธีดำเนินการที่ไม่ขึ้นกับแพลตฟอร์ม Java รหัสแหล่งที่มา.
  • มีไลบรารี เครื่องมือ และเฟรมเวิร์กมากมาย
  • เมื่อคุณวิ่ง Java คุณสามารถรันบนแพลตฟอร์มใดก็ได้และประหยัดเวลาได้มาก
  • JVM มาพร้อมกับคอมไพเลอร์ JIT (Just-in-Time) ที่แปลง Java ซอร์สโค้ดเป็นภาษาเครื่องระดับต่ำ ดังนั้นจึงทำงานได้เร็วขึ้นเหมือนแอปพลิเคชันทั่วไป

คุณสมบัติของ JDK

นี่คือคุณสมบัติที่สำคัญของ JDK:

  • ช่วยให้คุณสามารถจัดการส่วนขยายหลายรายการใน catch block เดียว
  • JDK มีคุณสมบัติทั้งหมดที่ JRE มี
  • ประกอบด้วยเครื่องมือในการพัฒนา เช่น คอมไพลเลอร์ ดีบักเกอร์ ฯลฯ
  • JDK จัดเตรียมสภาพแวดล้อมในการพัฒนาและดำเนินการ Java รหัสแหล่งที่มา.
  • สามารถติดตั้งได้บน Windowsระบบปฏิบัติการ Unix และ Mac
  • ตัวดำเนินการเพชรสามารถใช้ในการระบุอินเทอร์เฟซประเภททั่วไปแทนการเขียนแบบที่แน่นอน

คุณสมบัติของ JRE

นี่คือคุณสมบัติที่สำคัญของ JRE:

  • Java Runtime Environment คือชุดเครื่องมือที่ JVM รันจริง
  • JRE มีเทคโนโลยีการปรับใช้ ได้แก่ Java เริ่มต้นเว็บและ Java เสียบเข้าไป.
  • นักพัฒนาสามารถรันซอร์สโค้ดใน JRE ได้อย่างง่ายดาย แต่เขา/เธอไม่สามารถเขียนและคอมไพล์ได้ Java โครงการ
  • รวมถึงไลบรารีบูรณาการเช่น Java การเชื่อมต่อฐานข้อมูล (JDBC), การเรียกใช้เมธอดระยะไกล (RMI), Java การตั้งชื่อและอินเทอร์เฟซไดเรกทอรี (JNDI) และอื่นๆ
  • JRE มี JVM และ Java ไคลเอนต์เครื่องเสมือน HotSpot

คุณสมบัติของ JVM

นี่คือคุณสมบัติที่สำคัญของ JVM:

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

JDK ทำงานอย่างไร?

ฟังก์ชัน JDK
ฟังก์ชั่น JDK

นี่คือองค์ประกอบที่สำคัญของ JDK:

  • เจดีเค และ เจอาร์อี: JDK ช่วยให้โปรแกรมเมอร์สามารถสร้างคอร์ได้ Java โปรแกรมที่สามารถรันโดย JRE ซึ่งรวมถึง JVM และไลบรารีคลาส
  • ห้องสมุดชั้นเรียน: เป็นกลุ่มของไลบรารีที่สามารถโหลดได้แบบไดนามิกนั้น Java โปรแกรมสามารถเรียกได้ตอนรันไทม์
  • คอมไพเลอร์: มันเป็น Java โปรแกรมที่รับไฟล์ข้อความของผู้พัฒนาและคอมไพล์เป็น Java ไฟล์คลาส มันเป็นรูปแบบทั่วไปของเอาต์พุตที่กำหนดโดยคอมไพเลอร์ซึ่งประกอบด้วย Java รหัสไบต์ ใน Javaคอมไพเลอร์หลักคือ Javac.
  • ดีบักเกอร์: ดีบักเกอร์คือ Java โปรแกรมที่ให้นักพัฒนาทดสอบและแก้ไขข้อบกพร่อง Java โปรแกรม
  • Javaเอกสาร: JavaDoc เป็นเอกสารที่จัดทำโดย Sun Microsystems สำหรับ Java. Javaสามารถใช้ Doc สร้างเอกสาร API ในไฟล์ HTML จากโปรแกรมต้นทางได้

JRE ทำงานอย่างไร?

ฟังก์ชัน JRE

ฟังก์ชั่น JRE

JRE มีอินสแตนซ์ของ JVM คลาสไลบรารี และเครื่องมือในการพัฒนา เมื่อคุณเขียนและรวบรวม Java คอมไพลเลอร์จะสร้างไฟล์คลาสที่มีโค้ดไบต์

นี่คือองค์ประกอบที่สำคัญของ JRE:

  • รถตักคลาส: ตัวโหลดคลาสจะโหลดคลาสต่างๆ ที่จำเป็นสำหรับการรัน Java โปรแกรม JVM ใช้ตัวโหลดคลาสสามตัวเรียกว่าตัวโหลดคลาสบูตสแตรป ตัวโหลดคลาสส่วนขยาย และตัวโหลดคลาสระบบ
  • ตัวตรวจสอบรหัสไบต์: ตัวตรวจสอบรหัสไบต์จะตรวจสอบรหัสไบต์เพื่อให้รหัสไม่รบกวนล่าม
  • ล่าม: เมื่อคลาสถูกโหลดและโค้ดได้รับการตรวจสอบแล้ว ล่ามจะอ่านโค้ดทีละบรรทัด
  • รันไทม์: รันไทม์คือระบบที่ใช้ในการเขียนโปรแกรมเป็นหลักเพื่ออธิบายช่วงเวลาที่โปรแกรมใดรันอยู่
  • ฮาร์ดแวร์: เมื่อคุณรวบรวม Java รหัสเนทีฟ มันทำงานบนแพลตฟอร์มฮาร์ดแวร์เฉพาะ

ด้วยวิธีนี้ Java โปรแกรมทำงานใน JRE

JVM ทำงานอย่างไร?

ฟังก์ชั่น JVM

ฟังก์ชันการทำงานของ JVM

นี่คือองค์ประกอบที่สำคัญของ JVM:

1) ตัวโหลดคลาส

ตัวโหลดคลาสคือระบบย่อยที่ใช้สำหรับโหลดไฟล์คลาส โดยทำหน้าที่หลัก 3 อย่าง ได้แก่ การโหลด การเชื่อมโยง และการเริ่มต้นระบบ

2) พื้นที่วิธีการ

JVM Method Area จัดเก็บโครงสร้างของคลาส เช่น ข้อมูลเมตา ซึ่งเป็นโค้ดสำหรับ Java วิธีการและพูลรันไทม์คงที่

3) ฮีป

ออบเจ็กต์ อาร์เรย์ และตัวแปรอินสแตนซ์ทั้งหมดจะถูกจัดเก็บไว้ในฮีป หน่วยความจำนี้ถูกใช้ร่วมกันในหลายเธรด

4) สแต็คภาษา JVM

Java language Stacks เก็บตัวแปรในเครื่องและผลลัพธ์บางส่วน แต่ละเธรดมีสแต็กภาษา JVM ของตัวเอง ซึ่งสร้างขึ้นพร้อมกันในขณะที่สร้างเธรด เฟรมใหม่จะถูกสร้างขึ้นเมื่อมีการเรียกใช้เมธอด และจะถูกลบออกเมื่อกระบวนการเรียกใช้เมธอดเสร็จสมบูรณ์

5) การลงทะเบียนพีซี

เครื่องคอมพิวเตอร์ลงทะเบียนเก็บที่อยู่ของ Java คำสั่งเครื่องเสมือนซึ่งกำลังดำเนินการอยู่ ใน Javaแต่ละเธรดมีรีจิสเตอร์ PC แยกกัน

6) สแต็ควิธีดั้งเดิม

สแต็กเมธอดเนทีฟเก็บคำสั่งของโค้ดเนทีฟขึ้นอยู่กับไลบรารีเนทิฟ มันจัดสรรหน่วยความจำบนฮีปดั้งเดิมหรือใช้สแต็กประเภทใดก็ได้

7) กลไกการดำเนินการ

เป็นซอฟต์แวร์ประเภทหนึ่งที่ใช้ทดสอบซอฟต์แวร์ ฮาร์ดแวร์ หรือระบบที่สมบูรณ์ กลไกการดำเนินการทดสอบไม่มีข้อมูลใดๆ เกี่ยวกับผลิตภัณฑ์ที่ทดสอบ

8) ส่วนต่อประสานวิธีการดั้งเดิม

Native Method Interface เป็นเฟรมเวิร์กการเขียนโปรแกรม มันช่วยให้ Java รหัสซึ่งทำงานใน JVM เพื่อเรียกโดยไลบรารีและแอปพลิเคชันเนทิฟ

9) ไลบรารีวิธีดั้งเดิม

Native Libraries คือชุดของ Native Libraries (C, C++) ซึ่งจำเป็นโดย Execution Engine

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

นี่คือความแตกต่างที่สำคัญระหว่าง JDK กับ JRE กับ JVM:

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