JavaRush /Курсы /Java Core /Задачи на порядок инициализации переменных

Задачи на порядок инициализации переменных

Java Core
5 уровень, 9 лекция
Открыта

— Привет, Амиго!

4
Задача
Java Core, 5 уровень, 9 лекция
Недоступна
Статики
Статики
8
Задача
Java Core, 5 уровень, 9 лекция
Недоступна
Статики-2
Статики-2
8
Задача
Java Core, 5 уровень, 9 лекция
Недоступна
Значения по умолчанию
Значения по умолчанию
8
Задача
Java Core, 5 уровень, 9 лекция
Недоступна
Статики и исключения
Статики и исключения
4
Задача
Java Core, 5 уровень, 9 лекция
Недоступна
Статики-3
Статики-3
Комментарии (230)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Euraks Уровень 33
16 октября 2026
🦔
Maxim Terletsky Уровень 26
10 октября 2026
Для тех, кому лень читать про ошибки из задания «Статики и исключения»: 1. Ошибка «initializer must be able to complete normally». Появляется, когда компилятор видит, что все пути в static-блоке инициализации заканчиваются throw или бесконечным циклом. Он считает, что блок не может завершиться нормально, и это ошибка.

static {
    throw new RuntimeException();
    /*
    Exception возникает всегда → error:
    initializer must be able to complete normally
    */
}
То же самое произойдёт с пустым бесконечным циклом:

static {
    while (true) {} 
    /* 
    Тоже error: initializer must 
    be able to complete normally
    */
}
2. Ошибка «unreachable statement». Возникает, если после точки, из которой управление не может продолжиться, стоит ещё какой-то код — он становится недостижимым. Компилятор это видит и сообщает: «Бро, зачем ты инициализировал переменную после Exception?»

static {
    throw new RuntimeException();
    int x = 5; // Недостижимо → error: unreachable statement
}
3. Как бросить исключение внутри static-блока? Выявил два основных способа: • Использовать условие if:

static {
    if (Math.random() < 0.5) { // Можно просто использовать if(true)
        throw new RuntimeException();
    }
    // Формально можно сюда попасть → Ошибок нет
}
• Спрятать throw в методе:

static {
    fail();
}

private static void fail() {
    throw new IllegalStateException();
}
P.S. Приёмы из п. 3 — это антипаттерн: типичное решение задачи, которое кажется хорошим, но на практике приводит к серьезным проблемам в будущем.
Grigoryvvv Уровень 28 Expert
24 августа 2026
24.08.2026 / 25 уровень
Anonymous #3585174 Уровень 33
19 августа 2025
like
Максим Антонов Уровень 27
23 июня 2025
единственный ли я кто использует и попробовал использовать Scanner в статиках - 2?
Bogdan K. Уровень 1
8 июля 2026
У меня даже валидатор его пропустил в этой задаче, хотя в некоторых задачах ранее не хотел)
NikitaMorozka Уровень 38
20 ноября 2024
Человечеству потребовалось пройти путь в несколько миллионов лет, чтобы обрести прямохождение, а квадроберам нужен всего месяц, чтобы вернуться обратно. Впрочем, пара бутылок водки помогает сделать это за один час.
{Java_Shark} Уровень 36
4 октября 2024
++ едем дальше)))
Philipp Vasichev Уровень 28
26 сентября 2024
🤫
NordØne Уровень 34
9 июля 2024
Не сдаемся и идем дальше.
mrnght Уровень 28
3 сентября 2024
По моему совсем уже странно было бы сдаться на таком высоком уровне. Если человек оказался здесь, значит он уже прошел через лямбды, файл ридеры и прочее, так что тут он уже вряд ли позволит себе сдаться :)
Алексей Уровень 4
5 октября 2024
почему многие заканчивают на 28м уровне?
mrnght Уровень 28
9 октября 2024
после можно купить стажировку в javarush, лично я из за этого
CodeMashine Уровень 33
2 января 2025
потому что для поиска работы нужно еще многопоточку, спринг,мавен и куча всего.
Николай Уровень 48
7 июня 2024
Я , конечно, понимаю, что я сейчас буду подвергнут резкой критике. НО вот задачу про "Статики и исключения" решил практически за меня IJ. Там не очень понятное условие , и я соответственно начал выполнять так, как я его понял, прочитав лекцию. Понятно, что там появились красные метки, нажав на которые, IJ поправил все за меня и.. программа заработала.
safelogj Уровень 1
20 июня 2024
речь наверно про статики - 2, мои знания из Sintax про try catch finally оказались бесполезны в этой задаче 🙂, зато я теперь это знаю.
Алексей Уровень 4
5 октября 2024
вот из-за этого я и прохожу задачи на сайте. IJ мешает думать самому.