Static Blocks ใน Java คืออะไร

Static Blocks Ni Java Khux Xari



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

บล็อกนี้จะแสดงการใช้บล็อกแบบคงที่ใน 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