Урок 1.
00:04:19
Как повторить действие, рассмотренное в лекции?
Урок 2.
00:02:44
Повторяйте написание кода при рассмотрении
Урок 3.
00:01:51
Выполняйте практические задания!
Урок 4.
00:02:27
Рекомендованный алгоритм решения практических задач
Урок 5.
00:04:05
Используйте отладчик, чтобы разобраться как работает
Урок 6.
00:01:05
Напоминание: Запустить можно только класс в
Урок 7.
00:02:59
Для закрепления материала, самостоятельно
Урок 8.
00:00:43
Если Вы заметили неработающую ссылку,
Урок 9.
00:00:41
Как просматривать уроки при отсутсвующем
Урок 10.
00:01:26
Как получить доступ к коду, который используется на уроке?
Урок 11.
00:03:10
Как скачать код, если он содержит несколько классов?
Урок 12.
00:02:32
Как собрать версию maven проекта со
Урок 13.
00:03:22
Выбор операционной системы для изучения Java
Урок 14.
00:00:28
Что такое JDK?
Урок 15.
00:01:32
Разнообразие поставщиков JDK на рынке
Урок 16.
00:03:30
Выбор поставщика JDK для курса
Урок 17.
00:04:05
Выбор версии Java
Урок 18.
00:00:55
Установка OpenJDK 11 для Windows
Урок 19.
00:00:59
Установка OpenJDK 11 для MacOS
Урок 20.
00:01:04
Установка OpenJDK 11 для Linux
Урок 21.
00:01:17
Заметка: Отображение домашнего каталога
Урок 22.
00:00:30
Создание пустого файла в Windows
Урок 23.
00:01:58
Настройка операционной системы Windows
Урок 24.
00:00:28
Создание пустого файла в MacOS
Урок 25.
00:00:26
Создание пустого файла в Linux
Урок 26.
00:01:56
Использование JDK для запуска программ на языке Java
Урок 27.
00:02:10
Необходимость среды разработки
Урок 28.
00:00:45
Обзор сред разработки для Java
Урок 29.
00:01:11
Установка среды разработки IntelliJ IDEA для Windows
Урок 30.
00:01:56
Установка среды разработки IntelliJ IDEA для Mac OS
Урок 31.
00:02:32
Установка среды разработки IntelliJ IDEA для Linux
Урок 32.
00:02:44
Повторное выполнение команд в консоли
Урок 33.
00:03:03
Отличие между сохранением истории команд в Windows и Unix
Урок 34.
00:01:24
Автодополнение при вводе команд
Урок 35.
00:03:37
Прерывание выполнения текущего процесса в консоли
Урок 36.
00:01:29
Изменение размера окна интерпретатора
Урок 37.
00:01:53
Копирование и вставка команд в интерпретаторе
Урок 38.
00:05:42
Что такое переменные среды?
Урок 39.
00:02:28
Что такое домашний каталог пользователя?
Урок 40.
00:00:40
Домашний каталог в Windows
Урок 41.
00:00:55
Домашний каталог в MacOS
Урок 42.
00:01:00
Домашний каталог в Linux
Урок 43.
00:01:01
Переменная среды %HOMEPATH% в Windows
Урок 44.
00:01:16
Переменная среды $HOME или символ ~ в MacOS
Урок 45.
00:01:13
Переменная среды $HOME или символ ~ в Linux
Урок 46.
00:01:03
Заметка: Отличия в синтаксисе при работе с
Урок 47.
00:00:31
Получение значения переменной среды с помощью Java
Урок 48.
00:01:51
Получение абсолютного пути домашнего каталога в Java
Урок 49.
00:01:46
Запуск виртуальной машины Java в Windows
Урок 50.
00:02:55
Запуск виртуальной машины Java в MacOS
Урок 51.
00:03:02
Запуск виртуальной машины Java в Linux
Урок 52.
00:04:20
Запуск виртуальной машины, используя абсолютный
Урок 53.
00:01:16
Отличие в разделителе элемента пути между Windows и MacOS/Linux
Урок 54.
00:04:22
Переменная среды PATH
Урок 55.
00:03:19
Отличия при работе с переменной среды
Урок 56.
00:02:56
Переменная среды JAVA_HOME
Урок 57.
00:03:51
Область видимости переменных среды
Урок 58.
00:01:21
Как правильно создавать переменные
Урок 59.
00:02:16
Настройка переменных среды в Windows
Урок 60.
00:02:15
Настройка переменных среды в MacOS
Урок 61.
00:02:27
Настройка переменных среды в Linux
Урок 62.
00:02:17
Создание учебного проекта
Урок 63.
00:02:41
Написание программы поиска положительных
Урок 64.
00:00:30
Заметка: Как отформатировать код в IntellJ IDEA
Урок 65.
00:02:41
Какую проблему решают классы?
Урок 66.
00:01:43
Решение проблемы с помощью классов
Урок 67.
00:00:24
Класс как структура данных, возвращаемая из метода
Урок 68.
00:01:26
Отличие класса от объекта
Урок 69.
00:00:51
Операция new
Урок 70.
00:00:51
Заметка: Создание объектов в Java без операции new
Урок 71.
00:12:38
Области памяти в Java: Stack и Heap
Урок 72.
00:06:40
Отличие примитивов от ссылочных типов данных
Урок 73.
00:00:41
Оператор доступа к элементам класса
Урок 74.
00:02:06
Константа null для инициализации пустых ссылок
Урок 75.
00:01:00
Сравнение с null
Урок 76.
00:01:35
Заметка: когда использовать null, а
Урок 77.
00:02:54
Выделение памяти под поля в классе
Урок 78.
00:02:09
Что значит NullPointerException?
Урок 79.
00:01:20
Значения по-умолчанию
Урок 80.
00:02:42
Отличие полей класса от локальных переменных
Урок 81.
00:01:29
Задание начальных значений для полей в классе
Урок 82.
00:04:00
Класс как шаблон создания объекта
Урок 83.
00:00:53
Заметка: Упрощение схемы стека для метода main
Урок 84.
00:01:49
Проблема статических массивов
Урок 85.
00:04:10
Введение в динамические массивы
Урок 86.
00:03:57
Создание функции добавления элемента в
Урок 87.
00:06:33
Улучшение кода добавления нового
Урок 88.
00:01:59
Введение в методы
Урок 89.
00:05:58
Поля класса хранят состояния объекта,
Урок 90.
00:02:45
Заметка: Отличие статических функций от методов
Урок 91.
00:16:40
Демонстрация работы метода добавления в динамический массив
Урок 92.
00:07:52
Что такое сборщик мусора?
Урок 93.
00:03:10
Метод DynaArray.toArray
Урок 94.
00:00:55
Заметка: Как открыть исходный код системной библиотеки?
Урок 95.
00:02:22
Реализация: метод DynaArray.asString
Урок 96.
00:02:45
Содержимое класса: поля и методы
Урок 97.
00:02:22
Введение в пакеты
Урок 98.
00:02:30
Ключевое слово package
Урок 99.
00:02:52
Ограничения на имя пакета
Урок 100.
00:02:26
Исправление частой ошибки с
Урок 101.
00:01:14
Заметка: Перенос класса с помощью IntellJ IDEA
Урок 102.
00:02:42
Что такое корневая папка для всех пакетов?
Урок 103.
00:01:23
Пакет по-умолчанию
Урок 104.
00:01:15
Уникальность имени класса в пределах пакета
Урок 105.
00:01:03
Допустимость одного и того-же имени
Урок 106.
00:01:41
Полное имя класса
Урок 107.
00:01:54
Зачем использовать полное имя класса,
Урок 108.
00:01:14
Импорт классов
Урок 109.
00:01:41
Заметка: Импорт классов предпочтительнее
Урок 110.
00:01:52
Зачем использовать полное имя класса,
Урок 111.
00:01:45
Пакет java.lang
Урок 112.
00:02:11
Импорт всех классов из пакета
Урок 113.
00:03:42
Принцип сокрытия данных
Урок 114.
00:02:53
Модификатор доступа private
Урок 115.
00:02:56
Принцип инкапсуляции
Урок 116.
00:03:53
Модификаторы доступа элемента класса
Урок 117.
00:03:12
Модификаторы доступа к классу
Урок 118.
00:04:23
Создание пакета structures и перенос в
Урок 119.
00:05:49
Перегрузка методов
Урок 120.
00:00:48
Заметка: Вызов публичного метода внутри класса
Урок 121.
00:02:22
Заметка: доступ к private полю внутри класса
Урок 122.
00:06:19
Реализация: Оптимизация методов DynaArray.add
Урок 123.
00:01:09
Заметка: Важность тестов перед оптимизацией
Урок 124.
00:02:24
Удаление дублирующего кода в классе DynaArray
Урок 125.
00:01:16
Что такое конструктор?
Урок 126.
00:03:24
Зачем нужен конструктор?
Урок 127.
00:03:14
Альтернатива конструкторам
Урок 128.
00:01:27
Перегрузка конструкторов
Урок 129.
00:01:56
Передача фактических параметров в конструктор
Урок 130.
00:03:14
Конструктор по-умолчанию
Урок 131.
00:01:29
Заметка: Генерация конструктора в среде IntellJ IDEA
Урок 132.
00:02:35
Ключевое слово this. Вызов конструктора из конструктора
Урок 133.
00:03:27
Ключевое слово this. Получение ссылки на текущий объект
Урок 134.
00:04:19
Ключевое слово this. Доступ к полю класса
Урок 135.
00:01:09
Содержимое класса: конструктор и секция инициализации
Урок 136.
00:07:21
Заметка: Нарушение принципа инкапсуляции
Урок 137.
00:02:21
Реализация: Исправить ошибку в реализации
Урок 138.
00:01:22
Реализация: Метод DynaArray.clear
Урок 139.
00:04:38
Реализация: Метод DynaArray.remove
Урок 140.
00:00:35
Реализация: Метод DynaArray.size
Урок 141.
00:00:53
Реализация: Метод DynaArray.contains
Урок 142.
00:02:34
Добавление файлов лицензии в проект
Урок 143.
00:01:52
Конфигурация IntelliJ IDEAдля автоматической
Урок 144.
00:01:29
Добавление шаблона авторства в код классов
Урок 145.
00:02:10
Создание именованного пакета и перенос исходного кода
Урок 146.
00:01:48
Статический массив: Создание и хранение в памяти
Урок 147.
00:02:12
Статический массив: Особенности
Урок 148.
00:03:36
Статический массив: Достоинства и недостатки
Урок 149.
00:05:04
Динамический массив
Урок 150.
00:06:34
Связный список как основная альтернатива массиву
Урок 151.
00:04:56
Односвязный список
Урок 152.
00:01:05
Двусвязный список
Урок 153.
00:01:11
Сравнение односвязного и двусвязного списков
Урок 154.
00:01:09
Заметка: Зачем нужны знания по базовым структурам данных?
Урок 155.
00:05:46
Создание односвязного списка. Метод add
Урок 156.
00:03:49
Заметка: Ограничения на модификаторы
Урок 157.
00:04:16
Отладка процесса добавления нового элемента в односвязный список
Урок 158.
00:12:46
Демонстрация работы метода добавления
Урок 159.
00:02:24
Метод LinkedList.toArray
Урок 160.
00:08:07
Демонстрация работы метода LinkedList.toArray
Урок 161.
00:02:14
Реализация: Метод LinkedList.asString
Урок 162.
00:04:45
Внутренний класс
Урок 163.
00:01:36
Реализация: Метод LinkedList.clear
Урок 164.
00:06:30
Что такое мусор с точки зрения Java?
Урок 165.
00:02:50
Что такое утечка памяти в принципе?
Урок 166.
00:04:06
Что называют утечкой памяти в Java?
Урок 167.
00:05:01
Пример утечки памяти в Java
Урок 168.
00:03:33
Анализ критичности выявленной утечки памяти
Урок 169.
00:00:14
Исправление утечки памяти в методе LinkedList.clear
Урок 170.
00:02:16
Почему нет такой проблемы в классе DynaArray?
Урок 171.
00:04:51
Демонстрация утечки памяти в классе
Урок 172.
00:16:27
Еще раз об утечке памяти в классе ObjectDynaArray
Урок 173.
00:11:44
Реализация: Метод LinkedList.remove
Урок 174.
00:02:50
Реализация: Метод LinkedList.size
Урок 175.
00:04:02
Реализация: Более эффективная реализация
Урок 176.
00:01:08
Реализация: Метод LinkedList.contains
Урок 177.
00:02:09
Реализация: Перегрузка методов add для
Урок 178.
00:01:56
Заметка: Сравнение методов добавления
Урок 179.
00:01:04
Реализация: Добавление метода DynaArray.add
Урок 180.
00:07:25
Реализация: Добавление метода LinkedList.add
Урок 181.
00:01:56
Реализация: Оптимизировать метод LinkedList.toArray
Урок 182.
00:01:00
Второй принцип ООП - Наследование
Урок 183.
00:06:07
Устранение проблемы дублирование кода
Урок 184.
00:04:12
Переопределение метода
Урок 185.
00:01:08
Заметка: Использование правильного класса LinkedList
Урок 186.
00:04:10
Что значит наследовать функциональность?
Урок 187.
00:03:03
Переопределение метода vs перегрузка метода
Урок 188.
00:01:58
Заметка: Достоинства внутренних классов
Урок 189.
00:04:41
Аннотация @Override
Урок 190.
00:01:01
Невозможность вызвать метод родительского
Урок 191.
00:05:03
Ключевое слово super. Вызов переопределенного
Урок 192.
00:01:56
Заметка: Когда this равен super?
Урок 193.
00:00:22
Заметка: При переопределении метода генерируется
Урок 194.
00:01:12
Заметка: Автоматически сгенерированные заглушки
Урок 195.
00:01:17
Удаление дублирования функциональности очистки с
Урок 196.
00:00:51
Порядок вызовов конструкторов в иерархии классов
Урок 197.
00:00:55
Конструктор без параметров вызывается из
Урок 198.
00:02:07
Ключевое слово super. Вызов конструктора
Урок 199.
00:02:30
Передача реального значения по иерархии наследования
Урок 200.
00:02:08
Заметка: Вызов метода из класса без
Урок 201.
00:01:05
Заметка: Главное отличие синтаксиса
Урок 202.
00:00:54
Заметка: Сравнение this() и super()
Урок 203.
00:01:01
Ключевое слово final. Запрет на переопределение метода
Урок 204.
00:00:52
Ключевое слово final. Запрет наследования
Урок 205.
00:05:28
Создание нового класса на базе существующего
Урок 206.
00:02:35
Композиция как альтернатива наследованию
Урок 207.
00:00:52
Родительский класс может быть только один!
Урок 208.
00:01:54
Каждый класс имеет родителя!
Урок 209.
00:00:25
Заметка: Класс Object - единственный класс,
Урок 210.
00:00:51
Класс Object - родитель для ВСЕХ классов в Java
Урок 211.
00:09:12
Методы класса Object
Урок 212.
00:02:29
Рефакторинг классов DynaArray и LinkedList
Урок 213.
00:03:06
Java - типизированный язык программирования
Урок 214.
00:04:21
Допустимость ссылки на родительский класс
Урок 215.
00:02:14
Какой метод вызывается по родительской ссылке?
Урок 216.
00:05:56
Алгоритм поиска метода перед его вызовом
Урок 217.
00:02:45
На что влияет класс ссылки?
Урок 218.
00:05:34
Позднее связывание.
Урок 219.
00:04:16
Обновление класса BaseDataStructure
Урок 220.
00:04:26
Понятие абстрактного класса
Урок 221.
00:01:02
Объект абстрактного класса невозможно создать!
Урок 222.
00:02:18
Каким образом использовать абстрактный класс в
Урок 223.
00:02:25
Полностью абстрактный класс
Урок 224.
00:02:31
Зачем нужен полностью абстрактный класс?
Урок 225.
00:01:19
Понятие интерфейса
Урок 226.
00:08:08
Понятие полиморфизма
Урок 227.
00:10:00
Еще раз о полиморфизме: Интерфейс взаимодействия
Урок 228.
00:02:30
Еще раз о полиморфизме: Провайдер данных из
Урок 229.
00:04:34
Еще раз о полиморфизме: Провайдер данных из
Урок 230.
00:03:53
Еще раз о полиморфизме: Резюме
Урок 231.
00:01:41
Множественное наследование с помощью интерфейсов
Урок 232.
00:00:51
Заметка: Возможность указать подтип в
Урок 233.
00:02:46
Заметка: Возможность повысить модификатор
Урок 234.
00:00:57
Определение класса объекта, используя
Урок 235.
00:02:30
Оператор instanceof
Урок 236.
00:02:13
Использование getClass
Урок 237.
00:03:02
Отличие instanceof от getClass
Урок 238.
00:03:17
Почему использование instanceof или getClass это плохо?
Урок 239.
00:02:39
Концепция маркерного интерфейса
Урок 240.
00:02:56
Корректное использование instanceof
Урок 241.
00:01:28
Введение
Урок 242.
00:02:05
Общий интерфейс для очереди и стека
Урок 243.
00:04:18
Создание тестового класса
Урок 244.
00:02:07
Общие требования к реализациям
Урок 245.
00:05:03
Реализация: Класс очереди на базе массива
Урок 246.
00:01:02
Реализация: Класс стека на базе массива
Урок 247.
00:05:34
Реализация: Более правильное разбиение на классы
Урок 248.
00:02:37
Заметка: альтернативная версия классов
Урок 249.
00:06:07
Заметка: Почему предпочтение было отдано
Урок 250.
00:01:01
Реализация: Базовый класс для стека и
Урок 251.
00:06:03
Реализация: Класс очереди на базе связного списка
Урок 252.
00:06:38
Реализация: Класс стека на базе связного списка
Урок 253.
00:04:05
Реализация: Альтернативная версия классов
Урок 254.
00:05:58
Шаблон любого модуля программы в
Урок 255.
00:04:59
Алгоритм восстановления доступа к личному кабинету
Урок 256.
00:14:14
Реальный пример: Фрагмент кода,
Урок 257.
00:10:47
Реальный пример: Создание реализаций по умолчанию
Урок 258.
00:07:18
Реальный пример: Тестирование
Урок 259.
00:06:52
Реальный пример: Демонстрация преимуществ ООП
Урок 260.
00:02:43
Заметка: Почему так популярен
Урок 261.
00:02:05
Два основных вида классов:
Урок 262.
00:02:29
Класс как структура данных: публичные поля
Урок 263.
00:03:14
Проблема классов с публичными полями
Урок 264.
00:00:00
Класс как структура данных: и
Урок 265.
00:02:04
Обратная совместимость для Java - важный принцип!
Урок 266.
00:02:55
Сравнение шаблонов по созданию классов
Урок 267.
00:05:05
Понятие Java Bean
Урок 268.
00:01:38
Самый частый сценарий создания JavaBean
Урок 269.
00:00:49
JavaBean - это название шаблона!
Урок 270.
00:01:10
Вариация шаблона JavaBean, позволяющего
Урок 271.
00:02:28
Модификатор final для полей класса
Урок 272.
00:02:36
Шаблон ImmutableObject на реальных примерах
Урок 273.
00:05:20
Использование final локальных переменных
Урок 274.
00:00:00
Принципы SOLID
Урок 275.
00:03:11
SOLID: Принцип единственной ответственности
Урок 276.
00:03:48
SOLID: Принцип открытости/закрытости
Урок 277.
00:04:40
SOLID: Принцип подстановки Лисков
Урок 278.
00:03:12
SOLID: Принцип разделения интерфейса
Урок 279.
00:03:04
SOLID: Принцип инверсии зависимостей
Урок 280.
00:01:36
Принцип DRY (Don’t repeat yourself)
Урок 281.
00:02:53
Принцип KISS (Keep it simple, stupid)
Урок 282.
00:01:02
Принцип YAGNI(You aren't gonna need it)
Урок 283.
00:03:56
Принцип декомпозиции сложной системы
Урок 284.
00:00:15
Введение
Урок 285.
00:02:42
Генерация методов класса
Урок 286.
00:03:17
Генерация классов по примеру
Урок 287.
00:02:06
Использование встроенных шаблонов кода
Урок 288.
00:01:45
Создание пользовательских шаблонов
Урок 289.
00:02:16
Концентрация над бизнес задачей
Урок 290.
00:02:47
Основные возможности рефакторинга
Урок 291.
00:01:06
Автоматический импорт классов
Урок 292.
00:01:30
Форматирование кода
Урок 293.
00:02:17
Использование final локальных переменных
Урок 294.
00:06:23
Реализация: Создание проекта в IntelliJ
Урок 295.
00:01:12
Заметка: Терминал в IntellJ IDEA - это
Урок 296.
00:04:06
Реализация: Корневой пакет и класс
Урок 297.
00:02:03
Правило: Используйте автоформатирование
Урок 298.
00:10:31
Алгоритм игры в крестики нолики в текстовом виде
Урок 299.
00:05:20
Проверка составленного алгоритма игры в крестики-нолики
Урок 300.
00:03:26
Проверка всех требований к программе,
Урок 301.
00:07:05
Определение основных компонентов игры в крестики-нолики
Урок 302.
00:08:03
Создание класса Game
Урок 303.
00:02:29
Правило: Изменения в системе контроля
Урок 304.
00:05:56
Генерация пустых классов, необходимых
Урок 305.
00:03:35
Отделение структур данных от бизнес логики
Урок 306.
00:06:08
Создание классов, описывающих основные
Урок 307.
00:05:52
Правило: Полезность метода toString для классов-моделей
Урок 308.
00:01:57
Напоминание: Обновление списка
Урок 309.
00:08:07
Реализация: Логика отображения
Урок 310.
00:05:12
Реализация: Случайный ход компьютера
Урок 311.
00:06:40
Реализация: Логика проверки победителя
Урок 312.
00:08:06
Реализация: Ход пользователя
Урок 313.
00:02:17
Напоминание: Последний коммит возможно
Урок 314.
00:02:34
Реализация: Логика проверки на ничью
Урок 315.
00:13:18
В чем ошибка в компоненте DrawVerifier?
Урок 316.
00:01:48
Расширение созданной программы
Урок 317.
00:03:31
Если изменить программу сложно,
Урок 318.
00:03:58
Реализация: Логика преобразования номера ячейки
Урок 319.
00:02:55
Если задача описана классом,
Урок 320.
00:02:09
Реализация: Интерфейс вместо класса
Урок 321.
00:01:56
Реализация: Преобразование номера ячейки
Урок 322.
00:01:29
Более эффективное преобразование номера
Урок 323.
00:06:35
Демонстрация преимуществ следования принципам SOLID в проекте
Урок 324.
00:07:05
Системы счисления
Урок 325.
00:03:14
Установка HEX-editor плагин для Notepad++
Урок 326.
00:02:08
Машинный код
Урок 327.
00:03:46
Язык ассемблера
Урок 328.
00:05:57
Программы пишутся под операционную систему и
Урок 329.
00:02:16
Диалекты языка ассемблера
Урок 330.
00:09:23
Ассемблирование программы на диалекте TASM под MSDOS
Урок 331.
00:03:29
Использование среды разработки для
Урок 332.
00:05:46
Высокоуровневые языки программирования
Урок 333.
00:01:12
Что такое компилятор?
Урок 334.
00:02:03
Компиляция программы на языке C под Windows
Урок 335.
00:02:20
Компиляция программы на языке C под Linux
Урок 336.
00:04:38
Заметка: Этапы компиляции программы на языке C
Урок 337.
00:02:35
Компилятор создает приложение под операц
Урок 338.
00:02:21
Использование среды разработки для компиляции
Урок 339.
00:02:12
Что такое интерпретатор?
Урок 340.
00:01:10
Интерпретатор для языка программирования JavaScript
Урок 341.
00:01:50
Интерпретация программы на языке JavaScript на Windows
Урок 342.
00:01:57
Интерпретация программы на языке JavaScript на Linux
Урок 343.
00:01:21
Использование среды разработки для написания
Урок 344.
00:01:48
Заметка: Терминал и командная строка - это тоже интерпретатор!
Урок 345.
00:02:08
Особенности интерпретируемых языков программирования
Урок 346.
00:00:00
Понятие платформы
Урок 347.
00:03:40
Самые распространенные платформы на сегодняшний день
Урок 348.
00:04:09
Заметка: Зачем нужны знания об архитектурах пр
Урок 349.
00:07:48
Сравнение компиляторов и интерпретаторов
Урок 350.
00:07:59
Java - компилируемый, а затем интерпретируемый
Урок 351.
00:01:12
Что такое JDK?
Урок 352.
00:02:29
В чем отличие JDK от JRE?
Урок 353.
00:05:12
Новшество в Java 9: Утилита jlink
Урок 354.
00:06:15
Компиляция и интерпретация байт-кода в Java
Урок 355.
00:01:58
Связь между именем класса, именем файла
Урок 356.
00:03:04
Новшество в Java 9: Запуск простых п
Урок 357.
00:02:12
Просмотр байт-кода
Урок 358.
00:03:28
Декомпиляция байт-кода
Урок 359.
00:03:18
Заметка: Компиляция в режиме отладки
Урок 360.
00:09:02
Понятие Classpath в Java. Что значит ClassNo
Урок 361.
00:04:03
Переменная окружения CLASSPATH
Урок 362.
00:04:00
Использование среды разработки для компиляции программ на Java
Урок 363.
00:01:40
Автоматическая компиляция классов средой Intell
Урок 364.
00:10:26
Понятие jar-архива
Урок 365.
00:02:49
Classpath может содержать не только классы,
Урок 366.
00:05:57
Создание самозапускающегося jar-архива
Урок 367.
00:02:03
Альтернативный способ создать самозапускающ
Урок 368.
00:01:12
Заметка: Самозапускающий jar-архив возможно и
Урок 369.
00:00:41
Декомпилятор может открывать jar-архивы!
Урок 370.
00:08:22
Что такое обфускатор?
Урок 371.
00:02:40
Использование среды разработки для создание jar-архива
Урок 372.
00:01:42
IntellJ IDEA использует сконфигурированный JDK для проекта!
Урок 373.
00:05:44
Что такое кроссплатформенность?
Урок 374.
00:07:10
Java - кроссплатформенный язык программирования
Урок 375.
00:03:05
Заметка: Новшество в Java 9: Утилита jshell
Урок 376.
00:09:52
Заметка: Использование jshell для написания
Урок 377.
00:00:38
Основные способы передачи параметров в J
Урок 378.
00:02:42
Использование переменных окружения для передачи
Урок 379.
00:02:12
Использование свойств для передачи параметр
Урок 380.
00:02:45
Использование аргументов командной строки
Урок 381.
00:03:50
Использование конфигурационного файла для
Урок 382.
00:01:59
Что такое процесс?
Урок 383.
00:02:30
Стандартные потоки ввода-вывода процесса
Урок 384.
00:01:58
Взаимодействие со стандартными пот
Урок 385.
00:04:05
Перенаправление стандартных потоков
Урок 386.
00:04:11
JIT компиляция
Урок 387.
00:02:09
AOT компиляция
Урок 388.
00:04:54
Демонстрация работы AOT компил
Урок 389.
00:03:02
Различные среды выполнения байт кода
Урок 390.
00:02:15
В современном мире не все так однозначно!
Урок 391.
00:00:59
Введение
Урок 392.
00:04:32
Местоположение домашнего каталога на
Урок 393.
00:09:59
Отличие в исполняемых файлах
Урок 394.
00:02:21
Запуск исполняемых файлов из текущ
Урок 395.
00:06:27
Интерпретаторы командной строки
Урок 396.
00:05:27
Проблемы, связанные с разными командными
Урок 397.
00:05:52
Что такое шебанг?
Урок 398.
00:06:22
Что такое скрипты?
Урок 399.
00:04:07
Зачем знания по созданию скриптов Java разработчику?
Урок 400.
00:03:41
Расширение .sh для скриптов запуска дл
Урок 401.
00:05:43
Демонстрация ошибки, которая может во
Урок 402.
00:05:09
Признак новой строки в текстовом файле
Урок 403.
00:04:27
Как удалить символ \r в Unix-подобной ОС
Урок 404.
00:01:16
Разделитель элементов пути к файлу
Урок 405.
00:02:42
В java можно использовать символ /
Урок 406.
00:01:53
Разделитель абсолютных и относительных путей
Урок 407.
00:01:14
Регистрозависисмость имен файлов и каталогов
Урок 408.
00:01:33
Регистрозависимость команд интерпре
Урок 409.
00:01:51
Признак скрытых файлов и каталогов
Урок 410.
00:02:12
Напоминание: Отображение скрытых файлов и
Урок 411.
00:02:14
Работа с переменными окружения
Урок 412.
00:02:51
Доступность переменных окружения в дочерних процессах
Урок 413.
00:00:24
Признак комментария в скриптах запуска
Урок 414.
00:04:53
Формат архивов: ZIP и TAR.GZ
Урок 415.
00:02:31
Символы продолжения команды с новой строки
Урок 416.
00:02:53
Использование полученных знаний на практике
Урок 417.
00:03:36
Задержка окна консоли в Windows
Урок 418.
00:04:21
Задержка окна консоли в Unix
Урок 419.
00:02:26
Извлечение специфических настроек для
Урок 420.
00:00:00
Что такое XML?
Урок 421.
00:04:02
Сохранение конфигураций в формате XML
Урок 422.
00:03:44
Что такое тег? Требования к тегам в XML
Урок 423.
00:00:53
Корневым может быть только один тег!
Урок 424.
00:01:36
Что такое атрибуты тега?
Урок 425.
00:01:07
Атрибуты vs вложенные теги
Урок 426.
00:01:14
Комментарии в XML
Урок 427.
00:01:53
Специальные символы в XML
Урок 428.
00:01:39
Как использовать специальные символы
Урок 429.
00:02:28
Секция CDATA
Урок 430.
00:01:09
Инструкции обработки
Урок 431.
00:02:23
Объявление XML
Урок 432.
00:01:33
Вложенность тегов должна быть корректной!
Урок 433.
00:01:04
Пробельные символы игнорируются!
Урок 434.
00:03:44
Примеры XML конфигураций
Урок 435.
00:06:22
Что такое расширение XML?
Урок 436.
00:00:00
Что такое DTD?
Урок 437.
00:03:36
Что такое XSD?
Урок 438.
00:02:49
DTD и XSD - это альтернативные способы за
Урок 439.
00:02:45
Как загрузить XSD или DTD файл в среду разр
Урок 440.
00:03:23
Зачем нужны сборщики проекта?
Урок 441.
00:00:14
Автоматизация сборки для Java
Урок 442.
00:03:31
Использование скриптов для сборки проекта на Java
Урок 443.
00:02:40
Написание программы на Java, кот
Урок 444.
00:04:22
Упрощение программы на Java, ко
Урок 445.
00:09:00
Сборщик проектов Apache Ant: Простейший скрипт
Урок 446.
00:07:49
Сборщик проектов Apache Ant: Корректный формат скрипта
Урок 447.
00:04:35
Проблемы сборщика проектов Apache Ant
Урок 448.
00:00:00
Проблемы сборщика проектов Apache Ant н
Урок 449.
00:05:34
В чем идея декларативного сборщика пр
Урок 450.
00:00:00
Сборщик проектов Apache Maven
Урок 451.
00:08:11
Сравнение сборщиков Apache Ant и Apach
Урок 452.
00:06:53
Сборщик проектов Gradle
Урок 453.
00:04:16
Сравнение сборщиков проектов: Apache Ant, Apac
Урок 454.
00:01:20
Что такое Apache Maven?
Урок 455.
00:04:41
Как установить Apache Maven на компьютер?
Урок 456.
00:01:46
При использовании IntelliJ IDEA нет необх
Урок 457.
00:01:43
Обновление переменной окружения PATH
Урок 458.
00:01:43
Создание Apache Maven проекта в IntelliJ IDEA
Урок 459.
00:02:42
pom.xml - единственный конфигурационный фа
Урок 460.
00:02:02
Стандартная структура каталогов в Apache Maven
Урок 461.
00:06:22
Жизненные циклы проекта в Apache Maven
Урок 462.
00:04:29
Выполнение Apache Maven фаз жизненных
Урок 463.
00:01:53
Использование терминала для выполнения
Урок 464.
00:00:53
Центральный репозиторий Apache Maven
Урок 465.
00:05:37
Подключение зависимостей в Apache Maven проект
Урок 466.
00:02:53
Поддержка транзитивных зависимостей
Урок 467.
00:05:31
Локальный репозиторий Apache Maven
Урок 468.
00:10:51
Основные фазы жизненных циклов Apache
Урок 469.
00:03:13
Основные фазы жизненных циклов Apach
Урок 470.
00:04:01
Основные фазы жизненных циклов Apache Maven в
Урок 471.
00:05:46
Какие фазы жизненного цикла чаще всего используются?
Урок 472.
00:13:32
Apache Maven использует плагины для выполне
Урок 473.
00:14:19
Какие плагины используются по-умолчани
Урок 474.
00:03:36
Напоминание: Запуск фаз жизненнег
Урок 475.
00:11:08
Заметка: mvn - это скрипт запуска Apache Maven!
Урок 476.
00:01:14
Запуск нестандартных фаз жизненного цикела
Урок 477.
00:05:12
В чем отличие запуска фазы жизненног
Урок 478.
00:04:05
Обновление версий уже сконфигурированных плагинов
Урок 479.
00:01:49
Рекомендации по выбору версий программного обеспечения
Урок 480.
00:03:20
Пример генерации простейшей проектной документации
Урок 481.
00:06:26
Версионирование программного обеспечения
Урок 482.
00:05:25
Квалификатор SNAPSHOT
Урок 483.
00:12:59
Подключение плагинов, расширяющих
Урок 484.
00:06:41
Конфигурация плагинов
Урок 485.
00:04:22
Использование свойств для указания номера версий
Урок 486.
00:06:43
Адаптация Apache Maven под существующий проект
Урок 487.
00:07:23
Встроенные свойства Maven проекта
Урок 488.
00:01:56
Исправление замечания: build is platform dependent!
Урок 489.
00:08:15
Использование свойств для конфигурации запуска
Урок 490.
00:06:22
Создание проектной документации с
Урок 491.
00:02:38
Использование свойств для разных сборок одно
Урок 492.
00:02:13
Несколько файлов pom.xml для разных сборо
Урок 493.
00:05:05
Использование Maven профилей для разных сбор
Урок 494.
00:07:27
Реальный пример использования Maven профилей
Урок 495.
00:03:07
Автоматическая активация Maven профилей
Урок 496.
00:07:01
Использование Maven архетипов
Урок 497.
00:01:57
Использование утилиты mvn для создания проекта
Урок 498.
00:07:28
Создание многомодульных проектов в Maven
Урок 499.
00:09:49
Типичный проект автономного приложения для Apache Maven
Урок 500.
00:05:21
Заметка: Что значит уровень компиляции 1.7?
Урок 501.
00:08:48
Уровени видимости зависимостей (Dependenc
Урок 502.
00:02:47
Какие этапы разработки проекта нуждаю
Урок 503.
00:09:55
Демонстрация уровня видимости зависимостей compile
Урок 504.
00:03:38
Демонстрация уровня видимости зависимостей provided
Урок 505.
00:08:00
Демонстрация уровня видимости зависимостей runtime
Урок 506.
00:01:14
Демонстрация уровня видимости зависимостей test
Урок 507.
00:02:25
Демонстрация уровня видимости зависимостей system
Урок 508.
00:01:11
Упрощение тестового проекта для демонстрации
Урок 509.
00:03:00
Преимущества Apache Maven: сборка проекта в среде IntelliJ IDEA
Урок 510.
00:02:39
Преимущества Apache Maven: сборка проекта в среде Eclipse
Урок 511.
00:03:31
Преимущества Apache Maven: сборка проекта в среде Apache NetBeans
Урок 512.
00:02:07
Преимущества Apache Maven: сборка проекта, используя терминал
Урок 513.
00:02:40
Заметка: Игнорирование файлов, специфичных для каждой IDE
Урок 514.
00:01:07
Что делать, если нет нужного плагина?
Урок 515.
00:05:22
Нестандартное действие в Maven: создание собственного плагина
Урок 516.
00:09:19
Нестандартное действие в Maven: запуск скрипта операционной системы
Урок 517.
00:05:21
Нестандартное действие в Maven: запуск Java класса
Урок 518.
00:03:10
Нестандартное действие в Maven: запуск Ant скрипта
Урок 519.
00:07:24
Заметка: Maven профиль для пользовательского плагина
Урок 520.
00:01:41
Рекомендуемый способ выполнить нестандартное действие в процессе сборки проекта
Урок 521.
00:00:49
Шаблон Maven проекта для курса
Урок 522.
00:05:12
Реализация: Конвертация проекта игры в крестики-нолики в Maven проект
Урок 523.
00:02:20
Реализация: Создание самозапускающегося jar архива
Урок 524.
00:05:07
Реализация: Скрипт запуска игры для операционной системы Windows
Урок 525.
00:01:32
Реализация: Скрипт запуска игры для Unix-подобных операционных систем
Урок 526.
00:04:58
Проверка скрипта на другой платформе
Урок 527.
00:02:58
Как передать конечному пользователю игру крестики-нолики
Урок 528.
00:13:05
Сборка проекта для Windows, используя maven-assembly-plugin
Урок 529.
00:05:39
Дополнительные сведения по assembly дескриптору
Урок 530.
00:03:24
Реализация: Сборка проекта для Unix, используя maven-assembly-plugin
Урок 531.
00:04:35
Исправление скриптов запуска
Урок 532.
00:03:05
Исправление файла NOTICE
Урок 533.
00:01:36
Реализация: Обновление скриптов запуска - добавление задержки в конце игры
Урок 534.
00:15:07
Проверка работоспособности первой версии под Windows, MacOS и Linux
Урок 535.
00:03:55
Введение в формат MarkDown
Урок 536.
00:02:44
Реализация: Обновление файла Readme.md
Урок 537.
00:09:40
Создание assembly дескриптора с JRE под Windows
Урок 538.
00:03:19
Реализация: Создание assembly дескрипторов с JRE под MacOS и под Linux
Урок 539.
00:02:30
11 версия Java в названии папок вводит в заблуждение!
Урок 540.
00:06:46
Реализация: Профили maven для создания архивов с JRE и без JRE
Урок 541.
00:11:57
Создание образов JRE, используя Ant скрипт
Урок 542.
00:05:24
Использование maven-antrun-plugin
Урок 543.
00:02:39
Реализация: Обновление файла Readme.md
Урок 544.
00:11:41
Обфускация байт кода игры, используя proguard
Урок 545.
00:09:14
Обновление стартовых скриптов
Урок 546.
00:02:54
Подготовка к тестированию сборок
Урок 547.
00:06:37
Проверка работоспособности версии с JRE и без JRE под Windows
Урок 548.
00:16:08
Проверка работоспособности версии с JRE и без JRE под MacOS
Урок 549.
00:06:57
Проверка работоспособности версии с JRE и без JRE под Linux
Урок 550.
00:03:33
Важность атрибута исполняемости при запуске скрипта под Unix
Урок 551.
00:03:37
Релиз второй версии игры крестики-нолики
Урок 552.
00:02:33
Обновление версии игры в pom.xml
Урок 553.
00:05:22
Статические поля класса
Урок 554.
00:02:00
Статические методы
Урок 555.
00:06:00
Для доступа к статическим полям нужен класс, а не объект!
Урок 556.
00:02:19
Для доступа к статическим методам нужен класс, а не объект!
Урок 557.
00:04:23
Статические константы
Урок 558.
00:02:08
Заметка: В интерфейсе все поля - статические константы!
Урок 559.
00:04:05
Статические секции
Урок 560.
00:01:21
Напоминание: Статические внутренние классы - удобны для демонстрации!
Урок 561.
00:08:41
Статический импорт
Урок 562.
00:07:15
Статические vs нестатические конструкции
Урок 563.
00:07:04
Статические конструкции - глобальны, а нестатические - локальны!
Урок 564.
00:05:52
Когда использовать статические методы вместо обычных?
Урок 565.
00:07:19
Понятие утилитного класса
Урок 566.
00:05:54
Статические методы НЕ ПОЛИМОРФНЫ!
Урок 567.
00:05:40
Шаблон проектирования Singleton
Урок 568.
00:01:48
Статический внутренний класс
Урок 569.
00:05:25
Создание объекта, используя статический метод
Урок 570.
00:01:28
Процедурное программирование vs ООП
Урок 571.
00:02:54
Является ли Java объектно-ориентированным
Урок 572.
00:01:22
Проблема, которую решают перечисления
Урок 573.
00:03:00
Решение № 1: Статические константы целого типа
Урок 574.
00:05:17
Решение № 2: Статические константы пользовательского типа
Урок 575.
00:02:00
Решение № 3: Использование перечисления
Урок 576.
00:11:48
Базовый класс перечислений. Стандартные методы
Урок 577.
00:04:25
Пользовательские поля и методы в перечислении
Урок 578.
00:03:09
Расширение интерфейсов в перечислении
Урок 579.
00:06:21
Пример использования перечисления для предо
Урок 580.
00:00:10
Введение
Урок 581.
00:00:22
Публичный класс
Урок 582.
00:00:51
Непубличный класс
Урок 583.
00:00:42
Финальный класс
Урок 584.
00:02:18
Абстрактный класс
Урок 585.
00:01:45
Заметка: Рекомендация для абстрактного класса без абстрактных методов
Урок 586.
00:01:21
Интерфейс
Урок 587.
00:00:56
Аннотация
Урок 588.
00:01:10
Перечисление
Урок 589.
00:06:34
Внутренний нестатический класс
Урок 590.
00:03:42
Внутренний статический класс
Урок 591.
00:02:04
Внутренними могут быть не только классы!
Урок 592.
00:08:52
Анонимный класс
Урок 593.
00:05:15
Почему это все - типы классов?
Урок 594.
00:02:58
Доступ к доступным внутренним классам в исходном коде
Урок 595.
00:02:47
Что такое функциональный интерфейс?
Урок 596.
00:13:47
Лямбда-выражение
Урок 597.
00:08:57
Ссылка на метод
Урок 598.
00:03:40
Дескриптор модуля module-info.java
Урок 599.
00:02:25
Файл package-info.java
Урок 600.
00:03:32
Почему char тип не лучший выбор для типа ячейки игрового поля?
Урок 601.
00:04:11
Реализация: Создание перечисления Sign
Урок 602.
00:07:30
Использование лямба-выражения для уменьшения дублирования кода
Урок 603.
00:04:13
Реализация: Устранение дублирования кода в
Урок 604.
00:01:51
Реализация: Устранение дублирования кода в кла
Урок 605.
00:11:24
Создание класса Player
Урок 606.
00:06:51
Упрощение класса Game
Урок 607.
00:04:22
Шаблон фабрики создания игры
Урок 608.
00:03:20
Заметка: Специальные комментарии TODO и FIXME!
Урок 609.
00:08:18
Реализация: Доработка класса GameFactory
Урок 610.
00:04:51
Как запустить программу с командными агрументам
Урок 611.
00:06:20
Исправление конфигурации для proguard
Урок 612.
00:06:01
Рефакторинг класса GameFactory
Урок 613.
00:08:00
Выделение интерфейсов взаимодействия с консолью
Урок 614.
00:06:14
Реализация: Реализовать интерфейсы взаимодействия с консолью
Урок 615.
00:07:14
Реализация: Использовать созданные интерфейсы
Урок 616.
00:11:06
Создание графического интерфейса
Урок 617.
00:06:35
Реализация: Тип пользовательского интерфе
Урок 618.
00:07:12
Реализация: Исправить ошибки в proguard
Урок 619.
00:09:41
Изменения в логике поддержке двух типов
Урок 620.
00:09:49
Подготовка к распространению версии
Урок 621.
00:03:23
Реализация: Создание скриптов запуска с
Урок 622.
00:06:41
Проверка программного обеспечения перед релизом
Урок 623.
00:04:01
Релиз третьей версии и обновление версии в pom.xml
Урок 624.
00:10:52
Взаимодействие программы с консолью. Что такое
Урок 625.
00:06:43
Взаимодействие с консолью в Java программах
Урок 626.
00:08:15
Ошибки в Java и их преобразование в ошибку программы
Урок 627.
00:04:00
Поток выполнения прерывается: при возникновении ош
Урок 628.
00:07:42
Перехват ошибок. Конструкция try/catch
Урок 629.
00:06:42
Способы выброса исключения
Урок 630.
00:03:38
Основной признак класса исключения
Урок 631.
00:03:59
Основные классы исключений
Урок 632.
00:07:04
Проверяемые и непроверяемые исключения. Оп
Урок 633.
00:04:06
Рекомендации по использованию проверяемых и н
Урок 634.
00:13:37
Обработка проверяемых и непроверяемых исклю
Урок 635.
00:08:18
Перехват разных классов с разными алгоритмами обработки
Урок 636.
00:05:34
Заметка: Режим отладки позволяет посмотреть
Урок 637.
00:04:42
Напоминание: Отличие команд F7 от F8 в IntelliJ IDEA
Урок 638.
00:08:50
Перехват родительского класса
Урок 639.
00:09:10
Еще раз об отличии Exception от Error!
Урок 640.
00:05:01
Перехват дочернего и родительского классов
Урок 641.
00:05:44
Перехват разных классов с одинаковым алгоритмом обработки
Урок 642.
00:06:01
Блок finally
Урок 643.
00:07:02
Варианты конструкции try, catch, finally
Урок 644.
00:05:20
Какой код должен быть в блоке finally?
Урок 645.
00:01:52
В каких случаях блок finally не выполнится?
Урок 646.
00:07:39
Что такое трасса стека?
Урок 647.
00:09:50
Важные характеристики ошибки: класс исключения
Урок 648.
00:05:52
Пользовательские исключения
Урок 649.
00:08:06
В любой непонятной ситауции - бросайте исключение!
Урок 650.
00:21:56
Конвертация исключений!
Урок 651.
00:09:04
Дополнительная характеристика: причина ошибки!
Урок 652.
00:07:39
Агрегация исключений. Метод addSuppressed
Урок 653.
00:04:46
Заметка: Корректировка трассы стека!
Урок 654.
00:11:39
Конфигурация характеристик Вашего класса исключений
Урок 655.
00:07:14
Рекомендации по выбору характеристик д
Урок 656.
00:03:43
Клонирование репозитория и импорт
Урок 657.
00:01:11
Реализация: Генерация ошибки вместо значения null
Урок 658.
00:02:49
Напоминание: Установка автора коммитов после кло
Урок 659.
00:13:43
Почему важно выбрасывать исключения даже тогда, к
Урок 660.
00:05:41
Реализация: Использование бизнес ошибок предпох
Урок 661.
00:02:01
Реализация: Искусственное ограничение на вхо
Урок 662.
00:04:55
Реализация: Алгоритм случайного хода компьют
Урок 663.
00:03:03
Напоминание: Задержка отображения консоли !
Урок 664.
00:05:44
Реализация: Обновление ошибок обработки
Урок 665.
00:10:35
Использование стратегий для возможности ра
Урок 666.
00:03:58
Реализация: Стратегия первого хода в центр поля
Урок 667.
00:09:28
Реализация: Стратегия победить сейчас
Урок 668.
00:09:33
Реализация: Заменить код на лямбду в классе Wi
Урок 669.
00:03:48
Реализация: Стратегия предотвратить побед
Урок 670.
00:08:45
Реализация: Стратегия предотвратить побед
Урок 671.
00:07:03
Реализация: Стратегия выиграть на следующем шаге
Урок 672.
00:11:02
Реализация: Случайность выбора свободной ячейки
Урок 673.
00:22:47
Принципы ООП на примере проекта игры в крестики-нолики!
Урок 674.
00:13:07
Реализация: Уровень сложности для хода компьютера
Урок 675.
00:28:21
Принципы проектирования на примере пр
Урок 676.
00:02:22
Релиз четвертой версии и обновление версии в pom.xml
pdf-ка находится в поисковике без проблем