คำถามติดแท็ก permanent-generation

1
การจัดสรรแบบคงที่ใน java - heap, stack และการสร้างแบบถาวร
เมื่อเร็ว ๆ นี้ฉันได้อ่านเกี่ยวกับรูปแบบการจัดสรรหน่วยความจำใน java มากและมีข้อสงสัยมากมายเนื่องจากฉันได้อ่านจากแหล่งต่างๆ ฉันได้รวบรวมแนวคิดของฉันแล้วและฉันจะขออ่านทุกประเด็นและแสดงความคิดเห็นเกี่ยวกับพวกเขา ฉันรู้มาว่าการจัดสรรหน่วยความจำเป็นเฉพาะ JVM ดังนั้นฉันต้องบอกไว้ก่อนว่าคำถามของฉันเป็นคำถามเฉพาะของ Sun คลาส (โหลดโดย classloaders) ไปในพื้นที่พิเศษบนฮีป: การสร้างแบบถาวร ข้อมูลทั้งหมดที่เกี่ยวข้องกับคลาสเช่นชื่อคลาสอาร์เรย์อ็อบเจ็กต์ที่เกี่ยวข้องกับคลาสอ็อบเจ็กต์ภายในที่ใช้โดย JVM (เช่น java / lang / Object) และข้อมูลการปรับให้เหมาะสมจะเข้าสู่พื้นที่การสร้างแบบถาวร ตัวแปรสมาชิกคงที่ทั้งหมดจะถูกเก็บไว้ในพื้นที่การสร้างแบบถาวรอีกครั้ง วัตถุไปกองที่แตกต่างกัน: คนรุ่นใหม่ มีเพียงหนึ่งสำเนาของแต่ละวิธีต่อคลาสเท่านั้นไม่ว่าจะเป็นวิธีการแบบคงที่หรือไม่คงที่ สำเนานั้นใส่ไว้ในพื้นที่การสร้างแบบถาวร สำหรับวิธีการที่ไม่คงที่พารามิเตอร์และตัวแปรโลคัลทั้งหมดจะเข้าสู่สแต็กและเมื่อใดก็ตามที่มีการเรียกใช้เมธอดนั้นอย่างเป็นรูปธรรมเราจะได้สแต็กเฟรมใหม่ที่เชื่อมโยงกับมัน ฉันไม่แน่ใจว่าตัวแปรโลคัลของวิธีคงที่ถูกเก็บไว้ที่ไหน พวกเขาอยู่ในกองของการสร้างแบบถาวรหรือไม่? หรือเพียงข้อมูลอ้างอิงถูกเก็บไว้ในพื้นที่การสร้างแบบถาวรและสำเนาจริงอยู่ที่อื่น (ที่ไหน?) ฉันยังไม่แน่ใจด้วยว่าประเภทการส่งคืนของเมธอดจะถูกเก็บไว้ที่ใด หากออบเจ็กต์ (ในรุ่นเยาว์) จำเป็นต้องใช้สมาชิกแบบคงที่ (ในรุ่นถาวร) พวกเขาจะได้รับการอ้างอิงถึงสมาชิกแบบคงที่ && พวกเขาจะได้รับพื้นที่หน่วยความจำเพียงพอที่จะจัดเก็บประเภทการส่งคืนของวิธีการ ฯลฯ ขอบคุณสำหรับสิ่งนี้!
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.