Rumah >Java >javaTutorial >Bilakah Anda Harus Menggunakan Blok Permulaan Statik Java?

Bilakah Anda Harus Menggunakan Blok Permulaan Statik Java?

Linda Hamilton
Linda Hamiltonasal
2024-12-21 22:59:14387semak imbas

When Should You Use Java's Static Initialization Blocks?

Blok Permulaan Statik: Menjelaskan Keperluan Mereka

Di Java, blok permulaan statik sering digunakan untuk memulakan medan statik yang memerlukan berbilang baris kod untuk tugasan nilai. Walau bagaimanapun, ia mungkin tidak jelas dengan serta-merta mengapa kita memerlukan blok berasingan untuk tujuan ini.

Pembezaan utama terletak pada masa pelaksanaan blok ini berbanding blok bukan statik. Blok bukan statik (kadangkala dirujuk sebagai blok pemula instance) laksanakan setiap kali tika kelas dibina. Sebaliknya, blok pemula statik dilaksanakan sekali sahaja apabila kelas itu sendiri dimulakan, tanpa mengira bilangan objek yang dicipta daripada jenis itu.

Pertimbangkan contoh berikut:

public class Test {

    static {
        // Static Block - Executes once upon class initialization
    }

    {
        // Non-Static Block - Executes every time an instance is created
    }

    public static void main(String[] args) {
        Test t = new Test(); // Creates new instance
        Test t2 = new Test(); // Creates new instance
    }
}

Apabila kod ini dilaksanakan, output yang dijangkakan ialah:

Static Block
Non-Static Block
Non-Static Block

Ini menunjukkan bahawa blok statik dilaksanakan sekali sahaja, manakala blok bukan statik dilaksanakan setiap kali tika kelas dibuat.

Ringkasnya, blok permulaan statik adalah berharga apabila anda perlu melaksanakan tugas permulaan kompleks yang memerlukan berbilang baris kod dan mesti dilaksanakan hanya sekali semasa kelas dimuatkan, tidak kira berapa banyak kejadian kelas itu dibuat seketika.

Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan Blok Permulaan Statik Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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