Run-Time Constant Pool และ Method-Area ใน java คืออะไร

พูลคงที่รันไทม์และพื้นที่เมธอดใน java คืออะไรฉันอ่านเจอว่า JVM สร้างทั้งสองอย่าง แต่อันไหนจะเกิดขึ้นก่อน พวกมันมีอะไรอยู่บ้าง? ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมาก


person Hello World    schedule 07.04.2014    source แหล่งที่มา
comment
stackoverflow.com/questions/10209952/java-constant-pool   -  person apangin    schedule 07.04.2014


คำตอบ (1)


ตาม http://www.artima.com/insidejvm/ed2/jvm2.html

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

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

พูลคงที่รันไทม์

ไฟล์คลาสเก็บการอ้างอิงเชิงสัญลักษณ์ทั้งหมดไว้ในที่เดียว นั่นคือพูลคงที่ แต่ละไฟล์คลาสมีพูลคงที่ และแต่ละคลาสหรืออินเทอร์เฟซที่โหลดโดยเครื่องเสมือน Java จะมีเวอร์ชันภายในของพูลคงที่ที่เรียกว่า พูลคงที่รันไทม์ พูลคงที่รันไทม์เป็นโครงสร้างข้อมูลเฉพาะการใช้งานที่แมปกับพูลคงที่ในไฟล์คลาส ดังนั้น หลังจากที่ประเภทถูกโหลดครั้งแรก การอ้างอิงเชิงสัญลักษณ์ทั้งหมดจากประเภทนั้นจะอยู่ในพูลคงที่รันไทม์ของประเภท

person RRM    schedule 09.04.2014
comment
ภาพประกอบดีๆ ได้ที่: blog.jamesdbloom.com/JVMInternals.html#constant_pool - person RRM; 12.04.2014
comment
คุณช่วยอธิบายหน่อยได้ไหมว่าจริงๆ แล้ว symbolic reference คืออะไร? - person Soumitri Pattnaik; 09.03.2016
comment
@SoumitriPattnaik stackoverflow.com/questions/17406159/ - person Adelin; 19.01.2018