Программа курса
Курс состоит из 45 лекций разбитых на 9 модулей по темам
Модуль: Основы
Лекция #1.1: целочисленные типы, типы с плавающей точкой, bit operations
Лекция #1.2: массивы, java.lang.String, format
Лекция #1.3: for/switch/while, boolean logic(|, ||, &, &&, !, ^)
Лекция #1.4: порядок выполнения операторов, построение internal DSL
Модуль: Процедурное программирование
Лекция #2.1: Циклы, итеративные алгоритмы
Лекция #2.2: Рекурсия I, основы
Лекция #2.3: Рекурсия II, проектирование рекурсивных алгоритмов
Лекция #2.4: Динамические структуры данных
Лекция #2.5: Память в Java: stack, heap, PermGen/Metaspace
Модуль: Основы
Лекция #1.1: целочисленные типы, типы с плавающей точкой, bit operations
Лекция #1.2: массивы, java.lang.String, format
Лекция #1.3: for/switch/while, boolean logic(|, ||, &, &&, !, ^)
Лекция #1.4: порядок выполнения операторов, построение internal DSL
Модуль: Процедурное программирование
Лекция #2.1: Циклы, итеративные алгоритмы
Лекция #2.2: Рекурсия I, основы
Лекция #2.3: Рекурсия II, проектирование рекурсивных алгоритмов
Лекция #2.4: Динамические структуры данных
Лекция #2.5: Память в Java: stack, heap, PermGen/Metaspace
Модуль: Исключения
Лекция #3.1: try-catch-finally
Лекция #3.2: checked/unchecked
Лекция #3.3: Internals and handling
Лекция #3.4: Java 7: try-with-resources
Лекция #3.5: Most popular exceptions in JDK
Модуль: Ввод/вывод, Java I/O, java.io.*
Лекция #4.1: Charsets
Лекция #4.2: I/O Streams (Adapter/Decorator)
Лекция #4.3: Serialization
Лекция #4.4: File System
Лекция #4.5: Java NIO
Модуль: Многопоточность
Лекция #5.1: Thread, Runnable
Лекция #5.2: JMM (volatile, final, synchronized)
Лекция #5.3: monitor (synchronized, wait()/notify()/notifyAll())
Лекция #5.4: Thread.interrupt(), InterruptedException
Лекция #5.5: ThreadLocal, ExecutionService, Future, CountDownLatch, CyclicBarrier, ReentrantLock
Модуль: Коллекции, Collections API, java.util.*
Лекция #6.1: Big-O notation
Лекция #6.2: base hierarchy: Iterable, Collection, Map, List, Set, Queue, Dequeue
Лекция #6.3: Iterable/Iterator, foreach
Лекция #6.4: List, ArrayList, LinkedList, ListIterator, Object.equals()
Лекция #6.5: HashSet/HashMap, hashCode() + equals() consistency
Лекция #6.6: TreeSet, TreeMap, Comparable/Comparator
Модуль: Объектно-ориентированное программирование
Лекция #7.1, Low level: Type (ClassCastException, instanceOf, java.lang.Class)
Лекция #7.2, Low level: Object construction
Лекция #7.3, Low level: Entities (class, interface, abstract class, enum)
Лекция #7.4, Low level: Methods (overloading, overriding, hiding)
Лекция #7.5, Low level: Scope (access modifiers, packages)
Лекция #7.6, Low level: Nested (inner, static nested, anonimous)
Лекция #7.7, Low level: Other (static, fields, boxing, …)
Лекция #7.8, High level: Terms, UML
Лекция #7.9, High level: patterns I
Лекция #7.10, High level: patterns II
Модуль: Project Lambda + Stream API
Лекция #8.1: default methods, method reference
Лекция #8.2: Project Lambda
Лекция #8.3: Stream, Predicate, Function, …
Лекция #8.4: elements of Functional algorithms
Модуль: Продвинутые языковые возможности
Лекция #9.1: Аннотации
Лекция #9.2: Генерики
Лекция #9.3: Reflection API (java.lang.reflect.*)
Лекция #9.4: Class loading, bytecode generation, Proxy
О всяком
Сразу оговорюсь, данный курс рассчитан на тех, кто уже пишет на каком-либо процедурном языке программирования (Pascal, C, C++, PHP) или имеет базовые познания по Java. Ожидается, что слушатель самостоятельно прочитал 1-2 книги из следующего списка:
— Хорстманн, Корнелл. “Java. Библиотека профессионала. Том 1. Основы”
— Эккель. “Философия Java”
— Шилдт. “Java. Полное руководство”
— Арнольд, Гослинг. “Язык программирования Java”
— Хорстманн, Корнелл. “Java. Библиотека профессионала. Том 1. Основы”
— Эккель. “Философия Java”
— Шилдт. “Java. Полное руководство”
— Арнольд, Гослинг. “Язык программирования Java”