Темы для сертификации 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(Лямбда) выражений

Вывод