Лекция

Java Syntax Pro Beta
11 уровень , 6 лекция
Открыта
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Дефрагментация памяти
Рассмотрим аналог памяти компьютера на примере массива строк. Если удалить некоторые элементы, то в массиве появятся так называемые "дыры" - то есть элементы равные null. Метод executeDefragmentation(String[]), принимающий массив строк, выполняет его "дефрагментацию", то есть
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Расставь правильно этажи
Сейчас мы видим, что класс Hotel не компилируется. Нужно расставить поля класса в таком порядке, что бы он скомпилировался.
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Купи 10 батонов
Тебя отправили в магазин за покупками и сказали, что нужно купить батон, а если будут яйца, то взять десять штук. Разберись, почему метод makePurchases независимо от переданных аргументов всегда выводит в консоль "Купил 10 батонов", и исправь его. Метод main не участвует в проверке.
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Ежик и яблоко
Наша задача — накормить ежика. Нужно в методе main создать один объект Apple и один объект Hedgehog, у которого вызвать метод eat и передать нужный аргумент — яблоко.

Лучший способ усвоить теорию — разобраться с ней на практике. Если эта тема показалась тебе сложной, советуем порешать дополнительные задания, которые помогут заполнить пробелы. Ну а если нескольких обязательных для решения задач тебе достаточно — смело переходи к следующим лекциям.

11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Прогноз погоды
У класса City есть два поля - название города и текущая температура воздуха. Также в классе Solution есть метод showWeather: он выводит в консоли информацию о погоде в городе, который передан в качестве аргумента метода. Реализуй метод showWeather, который должен выводить в консоли информацию в таком
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Создание материков
Как известно, на планете Земля есть 6 материков. Создай для каждого материка собственный класс. В каждом классе должно быть поле, которое хранит площадь соответствующего материка. Площадь материка нужно указывать при его создании, и она должна быть неизменяемой. Ты можешь использовать любые числа д
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Геттер и сеттер в деле
В классе Coordinate есть 2 геттера и 2 сеттера, но значения переменным сеттеры не устанавливают. Разберись, почему так происходит и исправь. Метод main не участвует в проверке.

Вот несколько задач на закрепление материала из предыдущих лекций:

11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Текущий год
В классе Solution есть поле currentYear, которое должно инициализироваться значением текущего года(Calendar.getInstance().get(Calendar.YEAR)) при создании нового объекта типа Solution. Тебе нужно найти ошибку и исправить её, чтобы при создании объекта класса Solution поле currentYear правильно иниц
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Собираем компьютер
Попробуем собрать компьютер. У нас есть классы: системный блок, монитор, клавиатура, мышь. В классе компьютер в конструкторе создай объекты классов-составляющих компьютера.
11
Задача
Java Syntax Pro, 11 уровень, 6 лекция
Недоступна
Автопроизводитель
Давай создадим каталог новых моделей авто у нас на производстве. Для этого нам нужно создать один метод initialize, который будет инициализировать такие поля объекта типа Car: модель, год выпуска, цвет.
Комментарии (466)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Grigoryvvv Уровень 14 Expert
16 декабря 2025
17.12.2025 / 11 уровень
C0N5P1RACY Уровень 21
12 декабря 2025
ooOOo спасибо папаша что подарил мне эти - десять задач - черного цвета двадцатого века
Elena Уровень 30
3 декабря 2025
Задача про материки ввела в ступор, ибо зачем оно именно так - непонятно. При такой реализации можно насоздавать 100500 Африк, и у каждой будет своя площадь. Но если абстрагироваться от реальности и решать задачу просто ради задачи - ок
Игорь Лупац Уровень 21
3 ноября 2025
Грязный хак 🙂

public class Solution {

    public static void main(String[] args) {
        String[] memory = {"object15", null, null, "object2", null, null, null, "object32", null, "object4"};
        executeDefragmentation(memory);
        System.out.println(Arrays.toString(memory));
    }

    public static void executeDefragmentation(String[] array) {
        int nullsCounter = 0;
        ArrayList<String> strs = new ArrayList<>();
        
        for (int i = 0; i < array.length; i++) {
            if (array[i] == null) {
                nullsCounter++;
            } else {
                strs.add(array[i]);
            }
        }
        
        for (int i = 0; i < nullsCounter; i++) {
            strs.add(null);
        }
        
        array = strs.toArray(array);
    }
}
Anton Pohodin Уровень 27
12 декабря 2025
С помощью олдскульного метода swap это выглядело бы так:

public static void executeDefragmentation(String[] array) {
        //напишите тут ваш код
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array.length - i - 1; j++) {
                if (array[j] == null && (j + 1) < array.length) {
                    String temp = array[j + 1];
                    array[j + 1] = null;
                    array[j] = temp;
                }
            }
        }
    }
А теперь представьте, что это решение можно было бы записать одной строкой(!). Что-то вроде этого:

Arrays.sort(array, Comparator.nullsLast(Comparator.naturalOrder()));
Вот ради этих знаний и стоит учить Java.
Farhad M. Уровень 16
10 января 2026
Вы пришли к такому решению в одну строку уже после прохождения основных блоков курса? Я нахожу такое решение не совсем очевидным. У меня оно вышло гораздо сложнее.
Anton Pohodin Уровень 27
10 января 2026
Поверьте, если у вас будет идти речь о скорости написания кода или важно будет его быстродействие (время выполнения), вы предпочтете именно такой способ решения. К этому решению я пришел после прохождения курса Java 25 SELF.
Anton Zorin Уровень 21
25 августа 2025
Была интересна первая задача, во первых, потому что можно написать разные реализации с разным временем выполнения и затратами памяти и интересно было узнать быстрейший метод решения. Во вторых, в одном из способов, из за того что

public static void executeDefragmentation(String[] array) 
не возвращает значение, вспомнил что нельзя использовать

Arrays.copyOf()
, да и вообще было интересно почитать сравнение

System.arraycopy().
8 сентября 2025
почему нельзя использовать?

Arrays.copyOf()
Anton Zorin Уровень 21
9 сентября 2025
Потому что метод void,

Arrays.copyOf()
возвращает новый массив, а

System.arraycopy()
изменяет существующий.
REK.QA Уровень 4
21 июля 2025
В задаче про материки что означает: "Площадь материка нужно указывать при его создании, и она должна быть неизменяемой. Ты можешь использовать любые числа для задания площади материков." В классе каждого материка надо создать переменную площади с её указанием произвольными цифрами, правильно понимаю?
Виталий Уровень 31
24 июля 2025
Не совсем. Переменную площади создаем, но инициализацию производим при вызове метода.
Galitos Уровень 13
20 июля 2025
Я с удовольствием съел эти задачи. Спасибо!
Anonymous #3585174 Уровень 33
24 июня 2025
like
Anonymous #3533104 Уровень 12
30 мая 2025
Вернулся после большого перерыва, уже подзабылось что то. Задачки поэтому нелегко дались) Ну еще вспомнится все я думаю. А на идее с подсказками удобнее гораздо))
xiokrius Уровень 4
13 мая 2025