«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Время и причины использования статических блоков инициализации в Java

Время и причины использования статических блоков инициализации в Java

Опубликовано в 2025-04-16
Просматривать:258

When and Why Use Static Initialization Blocks in Java?

понимание статических блоков инициализации

В Java, статические блоки инициализации обеспечивают специальный механизм для инициализации статических полей в классе. Статические поля инициализируются только один раз и имеют одинаковое значение во всех случаях класса. Хотя можно присвоить значения статическим полям в их объявлениях, существуют определенные сценарии, в которых этот подход нецелен.

Зачем использовать блоки статической инициализации? Например, представьте, что у вас есть поле, которое представляет список подключений к базе данных, инициализированные на основе настройки конфигурации. Вы не можете напрямую инициализировать это поле в рамках его объявления, поскольку конфигурация еще не доступна.

В таких случаях вступают в игру статические блоки инициализации. Эти блоки выполняются во время загрузки класса и обеспечивают удобный способ инициализации статических полей на основе текущего контекста. Они заключены в статические вьющиеся скобки:

public Static Class Test { статический { // Инициализировать статические поля здесь } }

public static class Test {
    static {
        // Initialize static fields here
    }
}

, в отличие от блоков статической инициализации, нестатические блоки (также известные как блоки инициализации экземпляра) выполняются каждый раз, когда создается экземпляр класса. Они используются для инициализации конкретных полей или выполнения других операций настройки.

пример

, чтобы проиллюстрировать разницу между статическими и нестатическими блоками, рассмотрим следующий код:

статический { System.out.println («Статический блок выполнен один раз»); } { System.out.println («Нестатический блок выполняется каждый раз, когда создается экземпляр»); } public static void main (string [] args) { Тест t1 = new Test (); // не статический блок выполнен Тест t2 = new Test (); // Нестатический блок выполнен снова } }

. Когда вы запустите этот код, вы увидите следующий выход:
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
    }
}
статический блок, выполненный один раз Нестатический блок выполняется каждый раз, когда создается экземпляр Нестатический блок выполняется каждый раз, когда создается экземпляр

. Как вы можете наблюдать, статический блок выполняется только один раз во время загрузки класса, в то время как нестатический блок выполняется каждый раз, когда создается экземпляр класса.
]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3