บล็อกนี้จะแสดงการใช้บล็อกแบบคงที่ใน Java
“ Static Blocks” ใน Java คืออะไร
บล็อกถูกจัดสรรเป็น “ คงที่ ” โดยเชื่อมโยงคำหลักคงที่กับคำหลักนั้น บล็อกเหล่านี้มีความสำคัญสูงกว่า “ หลัก ” ที่พวกเขาถูกประหารชีวิตก่อน “ หลัก() ' วิธี.
ไวยากรณ์
คลาสหลัก {
คงที่ {
ระบบ . ออก . พิมพ์ ( 'สวัสดีชาวโลก' ) ;
} }
ในไวยากรณ์ข้างต้น บล็อกรวมถูกกำหนดให้เป็น “ คงที่ ” และจะถูกเรียกใช้ก่อนหลัก
ข้อควรพิจารณาที่สำคัญเกี่ยวกับ “บล็อกแบบคงที่”
- บล็อกแบบสแตติกใน Java จะถูกเรียกใช้โดยอัตโนมัติเมื่อโหลดคลาสในหน่วยความจำ
- สิ่งเหล่านี้ถูกดำเนินการเพียงครั้งเดียว แม้ว่าจะมีการสร้างวัตถุหลายคลาสก็ตาม
- ไม่มีข้อจำกัด/ข้อจำกัดเกี่ยวกับจำนวนบล็อกการเริ่มต้นแบบคงที่ภายในคลาส
- บล็อกเหล่านี้สามารถใช้เพื่อเริ่มต้นตัวแปรสแตติกได้เช่นกัน
ตัวอย่างที่ 1: การใช้ “Static Blocks” ใน Java
ในตัวอย่างนี้ บล็อกแบบสแตติกสามารถใช้เพื่อสังเกตลำดับที่สามารถดำเนินการกับหลักได้:
ตัวอย่างคลาสสาธารณะ {
คงที่ {
ระบบ . ออก . พิมพ์ ( 'นี่คือบล็อกคงที่!' ) ;
}
publicstaticvoidmain ( สตริง [ ] หาเรื่อง ) {
ระบบ . ออก . พิมพ์ ( 'นี่คือหลัก!' ) ;
} }
ในบล็อกโค้ดด้านบน ให้ใส่ ' คงที่ ” บล็อกสะสมข้อความที่กำหนดและในขั้นต่อไปให้แสดงข้อความที่กำหนดใน “ หลัก '.
เอาต์พุต
ในเอาต์พุตนี้ สามารถวิเคราะห์ได้ว่าบล็อกแบบสแตติกถูกเรียกใช้ก่อนบล็อกหลัก
ตัวอย่างที่ 2: การดำเนินการค่าคงที่ภายใน “Static Block” ใน Java
ในภาพประกอบเฉพาะนี้ ค่าสแตติกสามารถเริ่มต้นได้ในบล็อกสแตติกและต่อมาแสดงในหลัก:
classcustom {คงที่ฉัน ;
คงที่ {
ฉัน = 10 ;
ระบบ . ออก . พิมพ์ ( 'Static Block เรียก!' ) ;
} }
ตัวอย่างคลาสสาธารณะ {
publicstaticvoidmain ( สตริง [ ] หาเรื่อง ) {
ระบบ . ออก . พิมพ์ ( กำหนดเอง. ฉัน ) ;
} }
ในบรรทัดโค้ดด้านบน:
- ก่อนอื่น สร้างคลาสชื่อ “ กำหนดเอง '.
- ภายในชั้นเรียน ให้ระบุ “ คงที่ ” ตัวแปรและเริ่มต้นในการจัดสรร “ คงที่ ' ปิดกั้น.
- สุดท้าย เรียกใช้ตัวแปรเริ่มต้นใน main โดยอ้างถึงคลาสที่มีอยู่
เอาต์พุต
จากผลลัพธ์ข้างต้น จะเห็นได้ว่า “ คงที่ ” บล็อกจะถูกดำเนินการก่อน และค่าเริ่มต้นในบล็อกนี้จะแสดงตามลำดับ
ตัวอย่างที่ 3: ดำเนินการ “Static Block” ก่อน Constructor
ในตัวอย่างนี้ บล็อกแบบสแตติกสามารถระบุได้ก่อนตัวสร้าง และสามารถสังเกตลำดับความสำคัญและการดำเนินการตามนั้น:
classcustom {คงที่ {
ระบบ . ออก . พิมพ์ ( 'นี่คือบล็อกคงที่' ) ;
}
กำหนดเอง ( ) {
ระบบ . ออก . พิมพ์ ( 'นี่คือตัวสร้าง' ) ;
} }
ตัวอย่างคลาสสาธารณะ {
publicstaticvoidmain ( สตริง [ ] หาเรื่อง ) {
obj1 ที่กำหนดเอง = ใหม่ กำหนดเอง ( ) ;
obj2 ที่กำหนดเอง = ใหม่ กำหนดเอง ( ) ;
} }
ในบรรทัดโค้ดด้านบน:
- ในทำนองเดียวกันให้กำหนดคลาสชื่อ “ กำหนดเอง '.
- ตอนนี้ ระบุ “ คงที่ ” บล็อกและรวมตัวสร้างคลาส เช่น “ กำหนดเอง() ” โดยมีข้อความระบุไว้ตามลำดับ
- ในหลัก สร้างสองอ็อบเจกต์ของคลาสที่สร้างขึ้นเพื่อเรียกใช้ฟังก์ชันคลาสตามลำดับความสำคัญตามลำดับ
เอาต์พุต
ในผลลัพธ์นี้สามารถดำเนินการพิจารณาต่อไปนี้:
- บล็อกแบบสแตติกจะได้รับความสำคัญสูงกว่าเมื่อเปรียบเทียบกับตัวสร้างที่มีอยู่
- มีการสร้างออบเจกต์ของคลาสขึ้นมา 2 รายการ แต่บล็อกแบบสแตติกจะถูกดำเนินการเพียงครั้งเดียว ดังที่ได้กล่าวไว้ก่อนหน้านี้
บทสรุป
“ บล็อกคงที่ ” ใน Java รันเพียงครั้งเดียวเมื่อโหลดคลาสลงในหน่วยความจำและถูกเรียกใช้งานก่อน “ หลัก() ' วิธี. ตัวอย่างที่กล่าวถึงในบทความพิสูจน์ให้เห็นว่าบล็อกเหล่านี้มีความสำคัญสูงกว่าตัวสร้างคลาสหลักและตัวสร้างคลาสตามลำดับ และเรียกใช้เพียงครั้งเดียว โดยไม่คำนึงถึงจำนวนของอ็อบเจ็กต์ที่สร้างขึ้น บล็อกนี้กล่าวถึงการใช้บล็อกคงที่ใน Java