"สวัสดี Amigo! ฉันได้ยิน Rishi อธิบายสิ่งใหม่และน่าตื่นเต้นให้คุณฟัง?!"
“นั่นสินะคิม”
"หัวข้อของฉันจะน่าสนใจไม่น้อย ฉันอยากจะบอกคุณเกี่ยวกับวิธีการโหลดคลาสลงในหน่วยความจำ"
คลาสใน Java คือไฟล์บนดิสก์ที่มี bytecode ซึ่งเป็นโค้ด Java ที่คอมไพล์แล้ว
"ใช่ฉันจำได้."
เครื่อง Java จะไม่โหลดหากไม่ต้องการ ทันทีที่มีการเรียกไปยังชั้นเรียนที่ใดที่หนึ่งในโค้ด เครื่อง Java จะตรวจสอบเพื่อดูว่ามีการโหลดหรือไม่ และถ้าไม่เป็นเช่นนั้น มันจะโหลดและเริ่มต้นมัน
การเริ่มต้นคลาสเกี่ยวข้องกับการกำหนดค่าให้กับตัวแปรสแตติกทั้งหมดและการเรียกบล็อกการเริ่มต้นสแตติกทั้งหมด
"นั่นดูคล้ายกับการเรียกตัวสร้างบนวัตถุ แต่บล็อกการเริ่มต้นแบบคงที่คืออะไร"
"ถ้าคุณต้องการรันโค้ดที่ซับซ้อน (เช่น โหลดบางอย่างจากไฟล์) เพื่อเตรียมใช้งานออบเจกต์ เราสามารถทำได้ในคอนสตรัคเตอร์ อย่างไรก็ตาม ตัวแปรสแตติกไม่มีโอกาสนี้ แต่เนื่องจากความต้องการยังคงอยู่ คุณจึงทำได้ เพิ่มบล็อกหรือบล็อกการเริ่มต้นแบบคงที่ให้กับคลาส โดยพื้นฐานแล้วพวกมันเทียบเท่ากับตัวสร้างแบบคงที่"
นี่คือลักษณะ:
รหัส | เกิดอะไรขึ้นจริงๆ |
---|---|
|
|
มันเหมือนกับสิ่งที่เกิดขึ้นเมื่อมีการเรียกคอนสตรัคเตอร์ ฉันได้เขียนมันเป็นตัวสร้างแบบคงที่ (ไม่มีอยู่จริง)
"ครับ ผมเข้าใจแล้ว"
"ดีมาก."
GO TO FULL VERSION