Rumah > Java > javaTutorial > Bila dan Mengapa Menggunakan Blok Permulaan Statik di Java?

Bila dan Mengapa Menggunakan Blok Permulaan Statik di Java?

Linda Hamilton
Lepaskan: 2025-01-02 17:31:40
asal
733 orang telah melayarinya

When and Why Use Static Initialization Blocks in Java?

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
    }
}
Salin selepas log masuk

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
    }
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan