บทความนี้ส่วนใหญ่ศึกษาการอ้างอิงที่ใช้งานและไม่โต้ตอบของชั้นเรียนใน Java ตามรายละเอียดด้านล่าง
การอ้างอิงที่ใช้งาน อยู่นี่คือห้าสถานการณ์ของการอ้างอิงที่ใช้งานอยู่
1. เมื่อพบคำแนะนำสี่ bytecode ของใหม่, getStatic, protstatic และ invokestatic หากคลาสไม่ได้เริ่มต้นมันจะเริ่มต้นสร้างวัตถุอ่านหรือตั้งค่าฟิลด์คงที่และวิธีการเรียกใช้แบบคงที่
2. ภาพสะท้อน
3. คลาสแม่จะเริ่มต้นก่อนที่คลาสย่อยจะเริ่มต้น
4. คลาสที่มีวิธีการหลักจะเริ่มต้นเมื่อเครื่องเสมือนเริ่มต้น
5. เมื่อใช้การสนับสนุนภาษาแบบไดนามิกของ JDK (ไม่ทราบ)
คำพูดแบบพาสซีฟ :
คลาส superclass {static {syso ("super init"); } ค่าคงที่สาธารณะสาธารณะ = 123;} คลาสย่อยคลาสขยาย superclass {คงที่ {syso ("sub init")}} คลาสสาธารณะ constantclass {สาธารณะคงที่ hw = "helloWorld";} คลาสสาธารณะ notinitialization {main () {syso //syso(constantclass.hw);}} เอาท์พุท: super init 123 เฉพาะคลาสที่กำหนดฟิลด์นี้โดยตรงจะเริ่มต้นสำหรับการเข้าถึงฟิลด์คงที่ คลาสย่อยจะไม่เริ่มต้น ความคิดเห็นแรกถูกยกเลิกและรันโดยไม่มีผลลัพธ์ใด ๆ คลาสอ้างอิงผ่านนิยามอาร์เรย์จะไม่กระตุ้นการเริ่มต้นของคลาส แต่จะเริ่มต้นการเริ่มต้นของคลาสย่อยที่สร้างขึ้นโดยอัตโนมัติโดยเครื่องเสมือนและสืบทอดมาจากคลาสวัตถุ คลาสนี้แสดงถึงอาร์เรย์ คุณสมบัติและวิธีการของอาร์เรย์ถูกนำไปใช้ในคลาสนี้ (แอตทริบิวต์ความยาวและโคลน ()) จะไม่มีผลลัพธ์หลังจากยกเลิกความคิดเห็นที่สอง ค่าคงที่จะถูกวางไว้ในสระคงที่ในระหว่างการรวบรวม constantclass.hw ถูกวางไว้ในสระว่ายน้ำคงที่ของคลาส notinitialization ในระหว่างการรวบรวม Notinitialization ไม่ได้มีการอ้างอิงเชิงสัญลักษณ์ถึง notinitialization
ข้างต้นคือทั้งหมดที่เกี่ยวกับการสนทนาสั้น ๆ ของบทความนี้เกี่ยวกับการอ้างอิงที่กระตือรือร้นและเฉยเมยไปยังชั้นเรียนใน Java และฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!