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. Принципы ООП: полиморфизм, инкапсуляция, наследование, абстракция.