Есть такой порядок инициализации: 1. static field parent 2. static { } parent 3. static field child 4.static { } сhild 5. non static field parent 6. non static { } parent 7. constructor parent 8. non static field child 9. non static { } child 10. constructor child { } - блок кода Для меня сейчас важны два пункта: 1. static field - загрузка статик поля 2. static { } - загрузка статик блока Пример:
public class Solution {

    static int number = 25;

    static {
        method();
    }

    static void method(){
        System.out.println(number);
    }
Консоль: 25
Вроде всё верно, сначала поле после блок Но!
public class Solution {


    static {
        method();
    }
    static int number = 25;

    static void method(){
        System.out.println(number);
    }
Консоль: 0
т.е в этом случае сначала статик блок, а только после статик поле. Как я понял, по правилам программирования, сначала указывают все данные класса, все его поля.И если нужно для подготовки к созданию объектов, инициализировать статик поля то придумали статические блоки. (Т.е сначала статик поля, после статик блоки.) Но как я привел в примере, я изменил порядок полей и блоков. Верно ли утверждение что - в начале инициализируются Статические элементы? т.е класс загружается сверху вниз, если первым статик поле - будет инициализация статик поля, если статик блок первый - значит он будет запущен первым, а после поля