Темы для сертификации Java SE8 OCA programmer I
Модуль 1: Вступление
Урок 1: Почему я хочу пройти Oracle Certified Associate Java Programmer I экзамен
Урок 2: Путь сертификации
Урок 3: Стратегия подготовки
Урок 4: Стратегия прохождения экзамена
4.1: Как понимать вопросы экзамена
4.2: Подготовка к экзаменационным вопросам, уверенность, и другие ресурсы
Модуль 2: Основы Java
Урок 1: Определить область действия переменных
1.1: Значение области видимости, блоков, и фигурные скобки
1.2: Особые случаи области видимости
Урок 2: Определение структуры Java класса
2.1: Java класс файлы: Содержание и правила наименований
2.2: Java классы: Класс, переменные класса, методы и конструкторы
Урок 3: Создание исполняемого Java приложения с методом main; запуск программы Java из командной строки; включая вывод в консоль
3.1: Создание исполняемого Java приложения с методом main
3.2: Запуск Java из командной строки
3.3: Управление classpath-ом
3.4: Работа с выводом в консоль
Урок 4: Импорт других Java пакетов , чтобы сделать их доступными в вашем коде
4.1: О пакетах и их предназначении
4.2: Порядок выражений, wildcard импорты(всех классов-через оператор * ), импортирование подпакетов, и обработка дублирующих имен класс
Урок 5: Сравнение и различие особенностей и компонентов таких как Java: платформонезависимость,объектно ориентированность, инкапсуляция, и т.д.
5.1: Понимание модели исполнения Java
5.2: Понимание значений потоков и сборщика мусора(garbage collection)
5.3: Понимание значений объектно-ориентированности и инкапсуляции
Модуль 3: Работа с типами данных в Java
Урок 1: Объявить и инициализировать переменные (включая приведение примитивных типов данных)
1.1: Используем общую форму простого объявления
1.2: Используем общую форму инициализированного объявления
1.3: Понимание примитивных типов целочисленных, буквенная форма
1.4: Понимание примитивных типов с плавающей точкой, буквенная форма
1.5: Понимание примитивных типов логических и символьных, буквенная форма
1.6: Приведение примитивных типов
Урок 2: Отличие между ссылочными переменными и примитивными переменными
2.1: Использование оператора == с примитивами и ссылками
2.2: Понимание устройства передачи аргументов в метод
Урок 3: Знать как читать или писать в объектные поля
3.1: Выделение поля из выражение ссылок
3.2: Использование "this" к полями доступа
3.3: Примеры кода
Урок 4: Объяснение Жизненного цикла Объекта (создание, "отцепление ссылки переназначением" и сборка мусора)
4.1: Понимание (выделения памяти)allocation и referencing(создание ссылок)
4.2: Сборка мусора
Урок 5: Разработка кода который используется wrapper классами такими как Boolean, Double, и Integer
5.1: Понимание и идентификация wrapper объектов(или объектов обёрток), понимание autoboxing-га
5.2: Использование API класса Integer
Модуль 4: Использование Операторов и конструкций Решения
Урок 1: Используем Java операторы; включая скобки для переопределения операторов и их приоритетов
1.1: Использование операторы, операнды, и выражения
1.2: Использование арифметических операторов + - * / %
1.3: Использование оператора + со строками(Strings)
1.4: Продвижение операндов
1.5: Использование операторов инкремента и декремента
1.6: Использование операторов shift(сдвига)
1.7: Использование операторов сравнения
1.8: Использование операторов логических
1.9: Использование операторов short-circuit
1.10: Использование операторов присвоения
1.11: Понимание совместимость присвоения
1.12: Понимание других элементов выражений
1.13: Использование скобок и приоритетов операторов
Урок 2: Тест равенства между Strings(Строками) и другими объектами применяя == и метод equals ()
2.1: Понимание выражения оператора == и намеренное использование выражения equals ()
2.2: Определяем если выражение equals() имплементировано, и реализация equals()
Урок 3: Создание if и if/else и тернарных конструкций
3.1: Понимание базовой формы конструкций if и if/else
3.2: Использование скобок со структурой if/else. Эффект от "else if"
3.3: Понимание if / else if / else структуры
3.4: Использование тернарных операторов
Урок 4: Использование switch выражения
4.1: Использование общей формы конструкций switch, case, break, and default
4.2: Примеры кода для общей формы конструкций switch
4.3: Понимание конструкции break
4.4: Определение типов для конструкции switch
Модуль 5: Создание и использование Arrays
Урок 1: Объявлять, создавать экземпляры, инициализировать и использовать одномерный массив
1.1: Понимание простых объявлений массивов, и переменных типа массив
1.2: Создание экземпляра массива, длина массива
1.3: инициализация массива через итерации, индексы к массивам
1.4: Использование комбинированного определения и инициализации массивов
1.5: Использование немедленное создание массива вне объявления
1.6: Инициализация массивов через копирование
Урок 2: Объявить, инстанцировать, инициализировать и использовать многомерные массивы
2.1: Объявление многомерных массивов
2.2: Использование немедленной инициализации многомерных массивов
2.3: Использование итеративной инициализации многомерных массивов
2.4: Примеры кода для многомерных массивов
Модуль 6: Использование Loop конструкций
Урок 1: Создать и использовать циклы while
1.1: Создание и использование циклов while
1.2: Примеры кода цикла while
Урок 2: Создать и использовать циклы for, включая улучшенный цикл for(также называемый как foreach)
2.1: Понять простое использование цикла for
2.2: Понять секцию инициализации цикла for
2.3: Понимание секции теста(проверки) цикла for
2.4: Понимание инкрементальной секции цикла for
2.5: Опущение секции цикла for
2.6: Примеры кода для базового цикла for
2.7: Понять как простое использование улучшенного цикла for
2.8: Идентификация действительных целей расширенного цикла for
2.9: Использование расширенного цикла for с генерик коллекциями
2.10: Примеры кода расширенного цикла
Урок 3: Создание и использование do/while циклов
3.1: Создание и использование do/while циклов
Урок 4: Сравнение loop конструкций(циклов)
4.1: Сравнение while и do while циклов
4.2: Сравнение while и простого for циклов
4.3: Сравнение while и расширенных циклов for работающих on Iterables
4.4: Сравнение while и расширенных циклов for работающих on arrays
Урок 5: Использование break и continue операторов
5.1: Использование break из одного цикл
5.2: Использование continue в одном цикл
5.3: Использование маркировки break из множественных циклов
5.4: Использование маркировки continue из множественных циклов
Модуль 7: Работа с методами и инкапсуляцией
Урок 1: Создание методов с аргументами и возвращаемые значения включенные в перегруженные методы
1.1: Создание "Методов"
1.2: Примеры кода для обычных методов
1.3: Понимание базового синтаксиса перегруженных методов
1.4: Понимание правил и рекомендаций при использовании перегруженных методов
1.5: Пример кода для перегруженных методов
1.6: Использование списка аргументов переменной длины
Урок 2: Применение ключевого слова static к методам и полям
2.1: Сравнение полей класса и полей объекта
2.2: Использование статических методов
2.3: Пример кода
Урок 3: Создание и перегрузка конструктора; включая воздействие на дефолтный конструктор
3.1: Создание и перегрузка конструкторов
3.2: Различия между дефолтным и пользовательско заданным конструкторами
Урок 4: Применение модификаторов доступа
4.1: Использование модификатора доступа public и private
4.2: Использование модификатора доступа default и protected
Урок 5: Применение принципов инкапсуляции к классу
5.1: Проектирование инкапсуляции
5.2: Реализация инкапсуляции
Урок 6: Определяем эффект воздействия ссылочных объектов и примитивных значений когда они передаются в методы и изменяют своё значение
6.1: Изменение значений через локальные переменные метода
6.2: Изменение значения локальных переменных метода
6.3: Пример кода
Модуль 8: Работа с наследованием
Урок 1: объявление наследования и его преимущества and its benefits
1.1: Понимание интерфейса и реализации наследования
1.2: Базовый код реализации наследования
1.3: Изменение унаследованного поведения
1.4: Примеры кода
1.5: Философия и терминология наследования (Часть 1)
1.6: Философия и терминология наследования (Часть 2)
Урок 2: Разработка кода который демонстрирует использование полиморфизма
2.1: Понимание концепций полиморфизма
2.2: Примеры кода
2.3: Понимание главной терминологии полиморфизма
2.4: Понимание типа переменных и типа объектов
2.5: определение типа объектов
2.6: Примеры кода
Урок 3: Определение когда необходимо приведение типов
3.1: Понимание принципа подстановки Liskov'а и отношение являться"is a"
3.2: Распознавание невозможного присвоения
3.3: Понимание приведение типов интерфейса в присвоениях
Урок 4: Использование выражения "super" и "this" для доступа объектов и конструкторов
4.1: Понимание "this" для доступа особенностей объекта
4.2: Понимание "super" для доступа особенностей родительского объекта
4.3: Понимание "this()" для доступа перегруженных конструкторов
4.4: Понимание "super()" для доступа к родительским конструкторам
4.5: Понимание глубинных принципов "this" и "super" для вызова других конструкторов
4.6: Примеры кода
Урок 5: Используем абстрактные классы и интерфейсов
5.1: Предотвращение создания экземпляра
5.2: Помечаем поведение абстрактного объекта
5.3: Понимание правил работы абстрактных классов и методов
5.4: Понимание и определение интерфейсов
5.5: Реализуем and используем интерфейсы
5.6: Примеры кода для интерфейсов
5.7: Понимание правил взаимодействия с интерфейсами
Модуль 9: Обработка Исключений
Урок 1: Различие между checked exceptions, RuntimeExceptions и Errors
1.1: Понимание типов exception(исключений)
Урок 2: Создание конструкции try-catch и определение как exceptions(исключения) изменяют нормальное поведение программы
2.1: Пишем try и catch в коде
2.2: Передаём exception(исключение) на вызывающий метод
2.3: Использование конструкции finally для подчистки ресурсов
2.4: Использование конструкции try with resources
2.5: Пример кода для конструкции вида try / catch / finally
2.6: Пример кода для конструкции вида try with resources
Урок 3: Описание преимуществ обработки класса Exception(Исключения)
3.1: Разбор философии механизма исключений
Урок 4: Создание и вызов метода который throws(выбрасывает) exception(исключение)
4.1: Обработка выбрасываемых exceptions(исключений)
4.2: Примеры кода
Урок 5: Определение общих классов exception(исключений) и категорий (таких как NullPointerException, ArithmenticException, ArrayIndexOutOfBoundsException, ClassCastException)
5.1: Общие классы Exception(Исключения)
Модуль 10: Работа с отобранными классами из Java API
Урок 1: Понимание общих конструкторов класса StringBuilder
1.1: Понимание общих конструкторов класса StringBuilder
1.2: Использование методов которые изменяют состояние класса StringBuilder
1.3 Использование методов чтобы читать и искать в классе StringBuilder, и использование методов для взаимодействия с внутренним хранилищем классов типа StringBuilder
Урок 2: Создание и управление классами String
2.1: Создание классов типа String
2.2: Понимание общих методов класса String: Immutability(Неизменность)
2.3: Использование общих методов класса String
2.4: Использование common String methods to perform comparisons
Урок 3: Создание и управление данными календаря используя классы из java.time.LocalDateTime, java.time.LocalDate, java.time.LocalTime, java.time.format.DateTimeFormatter, java.time.Period
3.1: Создание объектов Time(времени) и Date(даты)
3.2: Изменение Times(времен) и Dates(дат)
3.3: Использование форматирования через DateTimeFormatter
3.4: Сравнение и упорядочивание Times(часового времени) и Dates(времени дат) и использование класса Period(времени периодов)
Урок 4: Объявление и использование ArrayList-а и данных типов
4.1: Понимание цели и преимуществ ArrayList-а
4.2: Объявление и инициализация ArrayList-а
4.3: Использование общих методов и использования ArrayList-а
4.4: Использование документации и кода для ArrayList-а
4.5: Понимание работы простых дженериков с ArrayList
Урок 5: Написать простое Lambda(Лямбда) выражение, которое потребляет как Lambda(Лямбда) Predicate(Предикат) выражение
5.1: Понимание Predicate(Предикат) интерфейса
5.2: Создание Lambda(Лямбда) выражений для Predicates(Предикатов)
5.3: Пересмотреть правила для Lambda(Лямбда) выражений