разбор HW1 будет на следующем уроке вместе с HW2
1. Принципы ООП
- Объектно-ориентированное программирование
- Основы Объектно-Ориентированного Программирования (ООП)
- Наследование, агрегация, композиция, ассоциация (wiki)
- Типы отношений между классами
- Достоинства / Недостатки ООП
- ООП в Java: четыре принципа с примерами
- Николай Алименков — Парадигмы ООП (youtube)
- Стек и куча в Java
- Основы Java garbage collection (youtube)
- Дополнительно:
- Начиная с Java 8 область памяти
PermGenбыла упразднена и заменена наMetaspace- При загрузке класса (когда JVM встречает его коде впервые) JVM ищет этот класс в classpass и создает в
MetaspaceобъектClass<Ваш_Класс>- описание класса: его поля, методы, конструкторы.
- Типы данных
- Классы-обертки
- Java types (youtube)
- Модификаторы доступа (youtube)
- Руководство по пакетам в Java
- Пакеты (youtube)
- Дополнительно:
Правка к видео: в
ArrayStorage.delete()вместоstorage[i] = nullнужно записатьstorage[size - 1] = null
- Еще раз прочитайте, как правильно форматировать код
- Настройте IDEA на автоматическое удаление неиспользуемых импортов
- Поместите классы в пакеты, как это показано в уроке
- Реализуйте в
ArrayStorageметодupdate(Resume resume). Проверьте его на работоспособность вMainTestArrayStorage - Метод
updateдолжен обновлять резюме целиком - Сделайте проверки в:
get,update,deleteна наличие резюме вstoragesaveна переполнениеstorageи на отсутствие резюме вstorage
- Выводите в консоль информативные предупреждения, для указанных выше проверок, с указанием
uuid - Устраните дублирование кода в
ArrayStorage - Выберите в классе
java.util.Arraysподходящие методы для реализацииclear()иgetAll() - В
clear()очищайте не весьstorage, а только те ячейки, где хранятся резюме
Чтобы было понятно, к чему относятся коммиты, используйте префиксы:
lesson_n:— изменения, которые вы повторяли за Григорием по ходу урока
(например,lesson_1: реализовал методы для работы со storage)hw_n:— изменения, связанные с вашей самостоятельной реализацией ДЗ
(например,hw_3: реализовал Шаблонный метод)- Используйте следующий формат сообщения коммита:
<префикс>: <глагол в прошлом времени> <что сделано> - Сопровождайте каждый коммит кратким, но ёмким описанием. Глядя на него, должно быть ясно, какие изменения сделаны.
- Для исправления и объединения коммитов используйте rebase
Коммит должен соответствовать одной логической задаче:
- Реализация нового класса → отдельный коммит
- Реализация одного или нескольких связанных методов → отдельный коммит
- Исправление связанных ошибок → отдельный коммит

