Java Core (detailed plan)

Это детальный план курса Java Core. Так же Вы можете посмотреть главную страницу курса, материалы, материалы для углубленного изучения, контроль входных знаний, контроль выходных знаний.


1. Классы.
1.? Классы и интерфейсы
1.? Абстрактные классы
1.? Области видимости полей, методов, классов.
1.? static: методы/поля объекта/класса.
1.? inner-классы, nested-классы.
1.? enum

2. Наследование/иерархии классов: наследование, перегрузка, переопределение.
2.? Наследование полей, наследование методов.
2.? Конструирование экземпляра класса, имеющего предков.
2.? Есть ли переопределение статических методов?
2.? "Тяжелый" пример: двойная диспетчеризация.
2.? "Тяжелый" пример: паттерн Visitor.

3. Методы: рекурсия, передача по ссылке/по значению, vararg.

4. Память: стек, куча, PemGen, «уборка мусора», локальные переменные, «глобальные переменные» (статические поля), 
Object.finalize(), Object.clone().

5. Типы: примитивы, классы-обертки, autoboxing.

6. Collection API: архитектура пакета коллекций (Collection, List, Set, Map, SortedSet, SortedMap, Iterable, Iterator, 
Comparable, Comparator), основные реализации и их внутреннее устройство (ArrayList, LinkedList, HashMap, TreeMap, HashSet, 
TreeSet), «устаревшие коллекции» (Vector, Stack, Hashtable, Enumeration).

7. Java I/O: byte-ориентированные (InputStream/OutputStream), char-ориентированные (Reader/Writer), java type-
ориентированные (DataInput/DataOutput), классы-адаптеры, классы-декораторы, работа с файлами.

8. Exceptions: базовая иерархия (Throwable, Error, Exception, RuntimeException), cheched/unchecked exceptions, stack trace, 
обработка исключений, методы работы с исключениями в коммерческих проектах.
8.1 "Ядро" иерархии исключительных ситуаций
Throwable
        Error
        Exception
                RuntimeException        
8.1 Наиболее популярные исключительные ситуаций в виде иерархии
Throwable
        Error
                OutOfMemoryError
        Exception
                CloneNotSupportedException
                InterruptedException
                IOException
                        FileNotFoundException
                RuntimeException
                        NulPointerException
                        ClassCastException
                        IndexOutOfBoundsException
                        ArrayStoreException
                        IllegalMonitorStateException
                        ConcurrentModificationException
                        NoSuchElementException
                        UnsupportedOperationException
                        IllegalArgumetException
                                NumberFormatException
8.3 Обработка исключений - ключевые слова throws, throw, try, catch, finally.
8.4 Учет отношения наслелования при обработке исключений.

9. Threads
9.1 Классы JDK — Thread, Runnable. Методы класса Thread (currentThread, start, run, getState), потоки-демоны.
9.2 Прерывание работы потока: методы класса Thread запрещенные (stop, suspend, resume, destroy), псевдо (sleep, yield, join) 
и предусмотренные (interrupt, interrupted, isInterrupted).
9.3 Ключевое слово — synchronized, взаимное исключение (mutual exclusion).
9.4 Ключевое слово — synchronized, условное ожидание (conditional waiting), состояние потока Thread.State, методы общие для 
всех объектов - wait(), notify(), notifyAll(), реализация циклического буфера.
9.5 Ключевое слово volatile, представление о JMM, synchronized и JMM, передача данных между потоками и JMM, safe publishing.

10. Принципы ООП: полиморфизм, инкапсуляция, наследование, абстракция.