Блоки инициализации (initialization blocks) в Java используются для инициализации переменных класса и других статических компонентов, в том числе для установки значений по умолчанию, создания экземпляров класса, вызова методов и работы с исключениями. Бывают два типа блоков инициализации: статические (static) и нестатические (instance). Статические блоки инициализации выполняются при загрузке класса в JVM (Java Virtual Machine), до создания его объектов. Они используются для инициализации статических полей класса. Нестатические блоки инициализации выполняются при создании объекта класса, перед выполнением конструктора. Они используются для присваивания начальных значений полей объекта, которые не могут быть установлены при объявлении поля. Вот пример, демонстрирующий использование статических и нестатических блоков инициализации в Java: public class MyClass {
static int staticVar;
int instanceVar;
static {
// статический блок инициализации staticVar = 10