Автопроигрывание
Автозавершение
К ПРЕДЫДУЩЕЙ ЛЕКЦИИ
ОК! ИДЕМ ДАЛЬШЕ!
Java 1
Занятие 1: Абстрактные классы и интерфейсы в Java
Напишите вашему преподавателю
(NEW) Подсказка по клавиатурным сокращениям в IntelliJ IDEA
Повторяем полиморфизм на примере toString() (7:40)
Как пользоваться встроенным редактором (0:59)
(NEW) Как редактировать свой код во встроенном редакторе
Практика: Проверьте знание полиморфизма
Абстрактный класс: Особенности ООП именно в Java (2:53)
Практика: абстрактные классы
Абстрактный метод: Особенности ООП именно в Java (7:00)
Практика: абстрактные методы
Интерфейсы в Java: Особенности ООП именно в Java (17:09)
Практика: интерфейсы в Java
Преобразование типов (3:22)
Практика: преобразование типов
Еще раз об интерфейсах (1:26)
Практика: итоги по интерфейсам
Учимся проектировать программу в ООП-стиле на Java на примере консольного приложения "Космодром" (16:44)
Реализуем паузу в приложении (1:36)
Практика: космопорт
Паттерн проектирования Синглетон (6:14)
Паттерн проектирования Фабрика (4:39)
(🆕NEW) Как искать ошибки в коде, используя stacktrace (3:21)
(NEW) Вопрос о нарушении инкапсуляции, если геттер возвращает ссылку на массив
(NEW) Вопрос об использовании instanceof
Практика: ДЗ обязательное (ATM)
(🆕NEW) Как правильно задавать вопросы
Разбор практики: Тренируемся проектировать и пишем приложение: Банкомат (14:50)
(NEW) Вопросы-ответы
Занятие 2: Проектирование и анонимные внутренние классы
Проектируем программу Космопорт с использованием интерфейсов (7:32)
Тренировка: изложение
Лекция: где применяются интерфейсы в Java? (3:09)
Повторяем: правило инициализации переменных (1:47)
Кодинг: инициализация переменных
Анонимные внутренние классы в Java (12:43)
Кодинг: анонимные внутренние классы
(NEW) Вопросы-ответы
Используем анонимные внутренние классы в программе (1:22)
Лекция: Итоги по ООП в Java (4:49)
Пример кода
Вопросы для самопроверки
Практика: ДЗ на анонимные внутренние классы (обязательное)
Архитектурная задача на весь курс: ДЗ для новичков (beginner)
Архитектурная задача на весь курс: ДЗ для продолжающих (Intermediate)
(NEW) Вопросы-ответы
Занятие 3: Коллекции в Java
Введение в коллекции. Интерфейсы Collection, List, Set (6:32)
Интерфейс List (14:21)
Сложность алгоритмов (6:25)
Особенности ArrayList (3:14)
Удаление элементов из коллекции и паттерн Iterator (9:53)
Коллекция LinkedList (6:56)
Интерфейс Set и реализации HashSet, TreeSet, LinkedHashSet (9:13)
(NEW) Как из Set достать конкретный элемент?
Интерфейс Map и реализация HashMap (5:54)
Что такое хэш (hash), как устроен, что спрашивают на собеседованиях? (6:18)
Что такое коллизия при работе с хэшкодами? (9:03)
Автогенерация hashCode в IDEA (2:19)
Как сравнивать классы? Интерфейс Comparable (3:50)
Интерфейс Comparator (3:09)
(NEW) Контракт между compareTo() и equals (вопросы с собеседований)
Иерархия классов
Пример кода
Вопросы для самопроверки
Задача на повторение пройденного и разработку
Задача на игру Морской бой
(NEW) Вопросы-ответы
Практика 1: ДЗ на коллекции (обязательное)
Практика 2: ДЗ на коллекции (обязательное)
Лабораторная работа на коллекции (Middle уровень) (обязательное)
(NEW) Как запомнить базовую иерархию коллекций (мастер-класс) (60:50)
Занятие 4: Работа с исключениями в Java
Правильная конкатенация строк в Java. Mutable и Immutable. StringBuilder и StringBuffer. (10:47)
Введение в механизм работы с исключениями в Java (19:40)
Контролируемые и неконтролируемые исключения (16:05)
Иерархия исключений
Тонкости по работе с исключениями (8:27)
Несколько блоков catch (7:03)
Блок finally (9:39)
Конструкция try-with-resources (3:48)
Что сильнее finally? (3:15)
Блок finally и return. Тонкости работы (7:21)
(NEW) Вопросы-ответы по finally / лезем "под капот" try-catch-finally
Пример кода
Домашнее задание
Помощь начинающим: пишем простые крестики-нолики (21:16)
Занятие 5: Ввод-вывод в Java
Ввод-вывод (java.io) Байтовые потоки (7:28)
(NEW) Сколько байт уходит на хранение символа в UTF-8?
Диаграмма классов java.io
Ввод-вывод (java.io) Символьные потоки (2:55)
Ввод-вывод (java.io) Буферизованные потоки и конструкция try-with-resourses (3:59)
Сканнер и локализация (2:04)
Класс DataOutputStream (3:43)
Сериализация и ObjectOutputStream (4:28)
Тонкости сериализации и записи экземпляров классов в файл (5:12)
Пример кода
Домашнее задание
(NEW) Вопросы-ответы
Занятие 6: Графический интерфейс пользователя
1. Основы графического интерфейса пользователя (Swing) (9:52)
Создание меню (6:38)
События и их обработка: добавляем слушателей (listeners) (6:17)
Реализуем слушателей через анонимные внутренние классы (4:15)
Реализуем диалоговые окна (6:40)
Используем SwingUtilities (2:14)
Разбираемся с контейнерами интерфейса (9:48)
Изучаем JPanel (2:26)
Используем GridLayout (2:24)
2. Паттерн проектирования MVC (8:42)
3. Приложение "Крестики-нолики" с использованием MVC (29:39)
Пример кода
Домашнее задание
Занятие 7: Многопоточность в Java
Передача данных в простейшем MVC от Model к View (10:22)
Процессы и потоки (6:08)
Способ 1: создаем новые потоки с помощью Runnable (7:38)
Тонкости по работе с потоками (2:30)
Способ 2: создаем новые потоки с помощью Thread (3:50)
Организуем обмен информацией между потоками, volatile (6:59)
Запускаем несколько потоков одновременно (5:23)
Синхронизация методов (10:18)
Блок синхронизации и ключи (8:37)
Ожидаем другие потоки, разбираемся с join() (3:02)
Делаем так, чтобы потоки заснули и будим их (7:53)
Как правильно прервать поток (9:41)
Разбираемся с Thread.yield() (1:40)
Пример кода
Домашнее задание
Занятие 8: Сокеты и работа с сетью
Протоколы и работа с сетью (9:07)
(NEW) IntelliJ IDEA "is not allowed to run in parallel". Запуск нескольких копий программы одновременно
Пишем простой браузер (9:10)
Сокеты и Приложение: Простой веб-сервер (20:41)
Веб-сервер с использованием многопоточности (7:59)
Написание приложения сетевой чат (22:59)
Пишем серверную часть сетевого чата (17:52)
Пример кода
(NEW) Инверсия управления, событийная модель, блокирующие и неблокирующие операции в Java
(NEW) ObjectInputStream и socket.getInputStream() не работают вместе (does not work)
Домашнее задание
Сертификат об окончании
(NEW) Вопрос об использовании instanceof
Содержание лекции пока не доступно
Если вы уже зачислены на курс,
то вам нужно просто войти
.
Открыть страницу с курсом для регистрации