Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

พื้นที่สแต็ก Java Virtual Machine (JVM)


ต่อไปนี้เป็นประเด็นสำคัญบางประการในการทำความเข้าใจ JVM Stack Area -

  • ในระหว่างการสร้างเธรด Java Virtual Machine จะสร้างสแต็กแยกต่างหาก

  • JVM ดำเนินการเพียงสองครั้งบนสแต็กนี้ การดำเนินการเป็นแบบพุช (เช่น แทรก) และป๊อป (เช่น ลบ)

  • เมื่อเธรดกำลังทำงาน สแต็กที่เกี่ยวข้องจะเรียกว่าสแต็กรันไทม์

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

  • เมื่อเธรดหยุดหรือดำเนินการเสร็จสิ้น ส่วนที่เกี่ยวข้องจากสแต็กจะถูกลบออก

  • เมื่อการเรียกทั้งหมดโดยเธรดเสร็จสิ้น สแต็กจะว่างเปล่าและถูกลบ

  • ก่อนสิ้นสุดเธรด JVM จะทำลายสแต็กที่เกี่ยวข้องกับเธรด

  • สแต็กที่จัดเก็บข้อมูลที่เกี่ยวข้องกับเธรดนั้นมีให้ใช้งานเฉพาะกับเธรดนั้นเท่านั้น และไม่สามารถเข้าถึงเธรดอื่นได้

  • สิ่งนี้บ่งชี้ว่าข้อมูลในสแต็กนั้นปลอดภัยสำหรับเธรด

  • ทุกข้อมูลในสแต็กที่เกี่ยวข้องกับเธรดนั้นเรียกว่าบันทึกการเปิดใช้งานหรือสแต็กเฟรม

หมายเหตุ − ไม่จำเป็นสำหรับสแต็ก JVM ที่จะมีตำแหน่งหน่วยความจำที่ต่อเนื่องกัน

โครงสร้างของเรกคอร์ดการเปิดใช้งาน/สแต็กเฟรม

ประกอบด้วยสามองค์ประกอบ -

  • อาร์เรย์ตัวแปรท้องถิ่น

  • ตัวถูกดำเนินการ และ

  • ข้อมูลเฟรม

  • JVM สร้างสแต็กเฟรมตามขนาดที่ต้องการโดยตรวจสอบข้อมูลคลาส

  • Operand Stack ทำหน้าที่เหมือนเวิร์กสเปซของ JVM ซึ่งใช้สำหรับเก็บผลการคำนวณระดับกลาง มีโครงสร้างเหมือนอาร์เรย์ตัวแปรในเครื่อง แต่สามารถเข้าถึงได้โดยดำเนินการพุชและป๊อปในสแต็ก

  • ข้อมูลเฟรม - มันมีค่าข้อมูลคงที่และวิธีการส่งข้อมูลกลับ นอกจากนี้ ยังมีการอ้างอิงไปยังตารางข้อยกเว้นที่มีข้อมูลทั้งหมดเกี่ยวกับ catch block เมื่อจำเป็นต้องตรวจจับข้อยกเว้นและต้องแสดงข้อความที่เกี่ยวข้องบนคอนโซล