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

#java

#java

Вопрос:

 package hello;

class hellogy {
    static
    
    {
        System.out.println("i will obviously enter hera");
    }
    public static void main(String[] args) {
        System.out.println( dls.i);
}
}
class dls
{
    
static int i=10;
static
    
    {
        System.out.println("i will obvioussadsfaasly enter hera");
    }
}
 

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

1. Потому что класс должен быть загружен. Статический блок выполняется как часть загрузки класса.

2. Когда вы ожидаете , что статический блок будет выполнен?

3. Как говорит @NathanHughes, все статические блоки загружаются один раз при инициализации класса. Если вы вызываете статическую более одного раза, вы увидите статическую печать только при первом вызове.

Ответ №1:

Статический блок в Java выполняется перед основным методом. Если мы объявляем статический блок в классе java, он выполняется при загрузке класса.