Страницы

Поиск по вопросам

суббота, 6 октября 2018 г.

Для чего нужен блок static?

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


Ответ

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

Комментариев нет:

Отправить комментарий