Вызов метода Java без имени

Я посмотрел на код ниже и нашел что-то немного странное:

public class Sequence {
    Sequence() {
        System.out.print("c ");
    }

    {
        System.out.print("y ");
    }

    public static void main(String[] args) {
        new Sequence().go();
    }

    void go() {
        System.out.print("g ");
    }

    static {
        System.out.print("x ");
    }
}

Я мог бы'мы ожидали, что это приведет к ошибке компиляции какSystem.out с "у" Безразлично»T принадлежит к объявлению метода просто{ }, Почему это действительно? Я нене вижу, как этот код будет или должен быть вызван.

При запуске это производитx y c g Кроме того, почемуstatic { } вызываться перед конструктором последовательности?

Ответы на вопрос(8)

Ваш ответ на вопрос