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