สิ่งที่คุณควรรู้เกี่ยวกับ Java Virtual Machine



บล็อกนี้จะกล่าวถึงแนวคิดของเครื่องเสมือน java โดยละเอียดเกี่ยวกับส่วนประกอบของสถาปัตยกรรมและความแตกต่างที่สำคัญระหว่าง JVM, JRE และ JDK

ภาษาเป็นยักษ์ใหญ่ในอุตสาหกรรมไอทีมาเป็นเวลานาน มีแนวคิดที่ยอดเยี่ยมบางอย่างที่ทำให้ดีกว่าภาษาโปรแกรมอื่น ๆ แนวคิดหนึ่งคือ Java virtual machine ในบทความนี้เราจะเรียนรู้เกี่ยวกับแง่มุมต่างๆของ เครื่องเสมือนโดยละเอียด ต่อไปนี้เป็นหัวข้อที่กล่าวถึงในบล็อกนี้:

Java Virtual Machine คืออะไร?

Java virtual machine เป็นเครื่องนามธรรมที่ไม่ขึ้นกับแพลตฟอร์มที่จัดเตรียมสภาพแวดล้อมรันไทม์ซึ่งมีการเรียกใช้โค้ด Java byte





เป็นส่วนหนึ่งของสภาพแวดล้อมรันไทม์ Java ที่แปลง bytecode ของ Java เป็นภาษาที่เครื่องอ่านได้ หลัก ที่เรามีในโปรแกรม Java ถูกเรียกโดยเครื่องเสมือน Java

วิธีเขียนการแจ้งเตือนในจาวาสคริปต์

jvm - เครื่องเสมือน java - edureka

ทำไมเราต้องใช้ Java Virtual Machine?

เราต้องการเครื่องเสมือน Java สำหรับงานที่ดำเนินการซึ่งจำเป็นอย่างยิ่งสำหรับการพัฒนาใด ๆ ที่เกี่ยวข้องกับ Java ต่อไปนี้เป็นงานบางส่วนที่ Java virtual machine ทำ



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

ด้วยการดำเนินการทั้งหมดนี้เครื่องเสมือน Java จึงเป็นส่วนสำคัญของการพัฒนา Java มาลองทำความเข้าใจว่ามันทำงานอย่างไรด้วยความช่วยเหลือของสถาปัตยกรรมเครื่องเสมือน Java

สถาปัตยกรรม Java Virtual Machine

สถาปัตยกรรมเครื่องเสมือน Java นั้นค่อนข้างเรียบง่ายมีพื้นที่หน่วยความจำตัวโหลดคลาสและเอ็นจิ้นการดำเนินการในส่วนประกอบอื่น ๆ ให้เราคุยรายละเอียดแต่ละเรื่อง

ClassLoader

เป็นระบบย่อยที่ใช้ในการโหลดไฟล์คลาส เมื่อใดก็ตามที่เรารันโปรแกรมใน java มันจะถูกโหลดโดย ClassLoader ก่อน ฟังก์ชันหลัก ได้แก่ การเริ่มต้นการเชื่อมโยงและการโหลด ต่อไปนี้คือ classloaders ในตัวใน Java



    • Bootstrap ClassLoader - เป็นคลาสสุดยอดของ Extension ClassLoader ที่โหลดไฟล์ rt.jar

    • ส่วนขยาย ClassLoader - โหลดไฟล์ jar ที่อยู่ในไดเร็กทอรี

    • ระบบ / แอปพลิเคชัน ClassLoader - โหลดไฟล์คลาสจาก classpath

    • กำลังโหลดการทำงาน - ขั้นแรก classLoader จะโหลดไฟล์. class และสร้างข้อมูลที่เกี่ยวข้องในรูปแบบไบนารีซึ่งบันทึกไว้ในพื้นที่วิธีการ

      apache spark กับ hadoop mapreduce
    • การเชื่อมโยงการทำงาน - หลังจากโหลดแล้วจะเตรียมตรวจสอบและทำการแก้ไข JVM จัดสรรหน่วยความจำสำหรับตัวแปรคลาสและเริ่มต้นหน่วยความจำเป็นค่าดีฟอลต์ ช่วยให้มั่นใจในความถูกต้องของไฟล์. class และเมื่อการตรวจสอบล้มเหลวเราจะได้รับข้อผิดพลาดข้อยกเว้นรันไทม์

    • การเริ่มต้น - ตัวแปรคงที่ทั้งหมดถูกกำหนดด้วยค่าที่กำหนดไว้ในบล็อกโค้ดในเฟสนี้

หน่วยความจำ JVM

  • พื้นที่วิธีการ - เก็บโครงสร้างสำหรับแต่ละคลาสเช่นรหัสข้อมูลฟิลด์พูลค่าคงที่รันไทม์ข้อมูลวิธีการ ฯลฯ

  • กอง - อ็อบเจ็กต์ถูกจัดสรรที่รันไทม์ในฮีป

  • JVM Language Stacks - มันเก็บตัวแปรท้องถิ่นและผลลัพธ์ มีบทบาทสำคัญในการเรียกและส่งคืนผลลัพธ์ เมื่อใดก็ตามที่มีการเรียกใช้เมธอดเฟรมจะถูกสร้างขึ้นและถูกทำลายทันทีที่การเรียกใช้สิ้นสุดหรือเสร็จสิ้น

  • รีจิสเตอร์พีซี - มีที่อยู่หรือตำแหน่งของ JVMinstruction ที่กำลังดำเนินการ

  • สแต็ควิธีดั้งเดิม - เมธอดดั้งเดิมทั้งหมดที่ใช้ในแอปพลิเคชันมีอยู่ในสแต็กเมธอดดั้งเดิม

  • Execution Engine - เอ็นจินการดำเนินการประกอบด้วยตัวประมวลผลเสมือนล่ามและไฟล์ JIT คอมไพเลอร์

  • วิธีดั้งเดิม อินเตอร์เฟซ - มันคือ ที่ให้

ตอนนี้เราเข้าใจสถาปัตยกรรมของ JVM แล้วเรามาดูขั้นตอนการดำเนินการและการรวบรวมโค้ดกัน

กระบวนการดำเนินการ

ขั้นตอนต่อไปนี้เกิดขึ้นขณะดำเนินการและคอมไพล์โค้ด Java

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

ตอนนี้เรารู้แล้วว่าการดำเนินการทำงานอย่างไรมาดูความแตกต่างระหว่าง JDK, JRE และ JVM

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

ต่อไปนี้เป็นข้อแตกต่างที่สำคัญบางประการระหว่าง JDK , JVM และ JRE

  1. JDK ย่อมาจาก Java development kit และ JRE ย่อมาจาก Java runtime environment
  2. JDK มีไว้สำหรับการพัฒนาในขณะที่ JRE มีไว้สำหรับสภาพแวดล้อมรันไทม์
  3. JVM เป็นส่วนสำคัญของ JDK และ JRE ในการรันโปรแกรม Java ใด ๆ
  4. JVM เป็นส่วนหนึ่งของการเขียนโปรแกรม Java และให้ความเป็นอิสระของแพลตฟอร์ม

สิ่งนี้ทำให้เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้เกี่ยวกับเครื่องเสมือน Java โดยละเอียด ฉันหวังว่าคุณจะเข้าใจทุกสิ่งที่แบ่งปันกับคุณในบทแนะนำนี้

.format ทำอะไรใน python

หากคุณพบบทความนี้เกี่ยวกับ“ Java Virtual Machine” ที่เกี่ยวข้องโปรดดูที่ Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก

เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางและจัดทำหลักสูตรที่ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับเฟรมเวิร์ก Java ต่างๆเช่น Hibernate & Spring

หากคุณพบคำถามใด ๆ อย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ 'Java Virtual Machine' และทีมงานของเรายินดีที่จะตอบ