Memahami Blok Permulaan Statik
Di Java, blok permulaan statik menyediakan mekanisme khas untuk memulakan medan statik dalam kelas. Medan statik dimulakan sekali sahaja dan berkongsi nilai yang sama merentas semua kejadian kelas. Walaupun mungkin untuk menetapkan nilai pada medan statik dalam pengisytiharan mereka, terdapat senario tertentu yang pendekatan ini tidak praktikal.
Mengapa Menggunakan Blok Permulaan Statik?
Pertimbangkan situasi di mana nilai medan statik tidak dapat ditentukan pada titik pengisytiharannya. Sebagai contoh, bayangkan anda mempunyai medan yang mewakili senarai sambungan pangkalan data, dimulakan berdasarkan tetapan konfigurasi. Anda tidak boleh memulakan medan ini secara langsung dalam pengisytiharannya kerana konfigurasi belum tersedia.
Dalam kes sedemikian, blok permulaan statik akan dimainkan. Blok ini dilaksanakan semasa pemuatan kelas dan menyediakan cara yang mudah untuk memulakan medan statik berdasarkan konteks semasa. Ia disertakan dalam pendakap kerinting statik:
public static class Test { static { // Initialize static fields here } }
Blok Bukan Statik lwn. Statik
Tidak seperti blok permulaan statik, blok bukan statik (juga dikenali sebagai contoh blok permulaan) dilaksanakan setiap kali contoh kelas dibuat. Ia digunakan untuk memulakan medan khusus contoh atau melakukan operasi persediaan lain.
Contoh
Untuk menggambarkan perbezaan antara blok statik dan bukan statik, pertimbangkan kod berikut :
public class Test { static { System.out.println("Static block executed once"); } { System.out.println("Non-static block executed each time an instance is created"); } public static void main(String[] args) { Test t1 = new Test(); // Non-static block executed Test t2 = new Test(); // Non-static block executed again } }
Apabila anda menjalankan kod ini, anda akan melihat perkara berikut output:
Static block executed once Non-static block executed each time an instance is created Non-static block executed each time an instance is created
Seperti yang anda boleh perhatikan, blok statik dilaksanakan sekali sahaja semasa pemuatan kelas, manakala blok bukan statik dilaksanakan setiap kali tika kelas dibuat.
Atas ialah kandungan terperinci Bila dan Mengapa Menggunakan Blok Permulaan Statik di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!