หน่วยความจำ Heap (Heap Memory)
- หน่วยความจำ Heap เป็นพื้นที่ข้อมูลรันไทม์ที่จัดสรรหน่วยความจำสำหรับอินสแตนซ์ของคลาส Java ทั้งหมดและอาร์เรย์
- Heap ถูกสร้างเมื่อ JVM เริ่มต้น และอาจเพิ่มหรือลดขนาดขณะที่แอปพลิเคชันทำงาน
- ขนาดของ Heap สามารถระบุได้โดยใช้ตัวเลือก VM
–XmsHeap อาจมีขนาดคงที่หรือเปลี่ยนแปลงได้ขึ้นอยู่กับกลยุทธ์การเก็บขยะ ขนาด Heap สูงสุดสามารถตั้งค่าได้ด้วยตัวเลือก–Xmx - โดยค่าเริ่มต้น ขนาด Heap สูงสุดถูกตั้งค่าที่ 64 MB
String Constant Pool
- String ใช้ตำแหน่งหน่วยความจำพิเศษเพื่อนำออบเจ็กต์ String ไปใช้ซ้ำ เรียกว่า String Constant Pool
- ออบเจ็กต์ String ที่สร้างโดยไม่ใช้คีย์เวิร์ด
newจะถูกเก็บในส่วน String Constant Pool ของ Heap - ลักษณะสำคัญหนึ่งของ String constant pool คือ มันไม่สร้างออบเจ็กต์ String เดียวกันซ้ำ หากมี String constant นั้นอยู่ใน pool แล้ว