Процедурное программирование в Java
Итерация (циклы): while/for, итеративные алгоритмы (слияние сортированных массивов, инвертирование массива, бинарный поиск, сортировка пузырьком, сортировка выборками, сортировка вставками)
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Рекурсия: рекурсия с ветвлением и без, рекурсия прямая и косвенная, рекурсивные алгоритмы (сортировка слиянием, быстрая сортировка, Ханойская башня, генерация перестановок, парсер арифметических выражений)
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Динамические структуры данных: односвязный список, двусвязный список, бинарное дерево, дуальность итерации и рекурсии
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Организация памяти в Java: стек, куча, передача по ссылке/по значению, PermGen, gc на основе поиска достижимых объектов
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
oracle.com: Memory Management in the Java HotSpot™ Virtual Machine
java.net: HotSpot internals: Storage Management
habrahabr.ru: Размер Java объектов
-Xmx, -Xms, -Xss:
"Внутренности" Oracle HotSpot JVM
Deep dive into assembly code from Java
Hotspot internals Q&A
Compressed object pointers in Hotspot VM
Java HotSpot™ Virtual Machine Performance Enhancements
Микротестирование HotSpot
Финализация (finalize()) и "уборка мусора"
Странности финализации
Исключения в Java
Синтаксис исключений - I: try, catch, finally, throw
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Синтаксис исключений - II: checked / unchecked, throws
Видео: запись группы октябрь-2012
Видео: запись группы январь-2013
Видео: запись группы февраль-2013
Как устроено исключение: stack trace, chained exceptions (getCause()), message (getMessage())
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Семантика исключений: Throwable / Error/ Exception / RuntimeException, построение своей иерархии исключений, стандарты реагирования на исключения, популярные исключения JDK
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013
Видео: запись группы февраль-2013
Исключения в Java 7: try-with-resources, multi-catch, suppressed exceptions, more precise rethrow.
Видео: запись группы февраль-2013.
Многопоточность в Java
Thread/Runnable: поток/процесс, start(), run(), join(), currentThread(), ?шаблон Command pattern, ?Callable
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013
Monitor: synchronized, wait(), notify(), notifyAll(), wait-set, blocked-set
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013 (часть I).
Видео: запись группы февраль-2013 (часть II).
Остановка потока: interrupt(), InterruptedException, interrupted(), isInterrupted(), stop(), destroy(), suspend(), resume()
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Sun/Oracle Concurrency Tutorial
Нить, которую разбудит HotSpot
Немного о deadlocks (RU)
Модель памяти Java (RU)
"Случайный" выход из Object.wait() (spurious wakeup)
Тайна случайных пробуждений (spurious wakeup)
Введение в java.util.concurrent internal (RU)
Организация многопоточных приложений
pthreads: "While this problem could be resolved, the loss of efficiency for a
Linux: spurious wakeup
JavaMemoryModel: Waits, Interrupts and Notify-s
Ввод/вывод в Java
oct-1 http://www.youtube.com/watch?v=jSCmYlY_Cfs&list=PLoij6udfBncgLfKp6jg4CqFtcAjWROKjz
oct-2 http://www.youtube.com/watch?v=J4L4UQnbjGc&list=PLoij6udfBncgn1sytlKEbHjZXA1zLN7FN
oct-3 http://www.youtube.com/watch?v=PrVomQoL83Y&list=PLoij6udfBncjiOu_qo_x-JMJ_wOPS4XNY
oct-4 http://www.youtube.com/watch?v=YAjhnZ0styI&list=PLoij6udfBncjnnr9291uZZmeURO0Ckqrv
Serialization / Cloning
oct-5 http://www.youtube.com/watch?v=bhuPg_UgTNA&list=PLoij6udfBncihtl8mXDeA6Pta75nKase8
jan-1 http://www.youtube.com/watch?v=naA2O0ZKdPs&list=PLoij6udfBncgpHfPhd_lfL-KO0QWhCwHV
jan-2 http://www.youtube.com/watch?v=hmRCwKjLHls&list=PLoij6udfBncjVTfGXgAfTzGuEINMMr09K
jan-3 http://www.youtube.com/watch?v=amMaAPG3cCA&list=PLoij6udfBnchpa4sx9y5q7pul92Il3i6L
jan-4 http://www.youtube.com/watch?v=VDJiKwZTG-Q&list=PLoij6udfBncjGKi5lRbwGgl-00NhvsHJx
feb-1
feb-2
feb-3
feb-1
Byte-oriented streams: InputStream, OutputStream, ByteArrayInputStream, ByteArrayOutputStream
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Шаблоны: Decorator, Adapter
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Char-oriented streams: Reader, Writer, InputStreamReader, OutputStreamWriter
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
I/O buffering: BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWrited
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Primitive-oriented streams: DataInput, DataOutput, DataInputStream, DataOutputStream
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Files: File, FileInputStream, FileOutputStream, RandomAccessFile, ?symbolic links, ?FS roots
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Serialization+clone(): глубокое и поверхностное копирование, Serializable, Cloneable, NotSerializableException, CloneNotSupportedException, transient, ObjectInput, ObjectOutput, ObjectInputStream, ObjectOutputStream
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Коллекции в Java
oct-1 http://www.youtube.com/watch?v=bl0Ql9YW8QA&list=PLoij6udfBncjWGJ2aQ0nweKSD4SgwdpUN
List/ArrayList/LinkedList
oct-2 http://www.youtube.com/watch?v=gJGNO-np2TU&list=PLoij6udfBnci78aOzgebyeWrK5c1LeJCo
HashMap/HashSet
oct-3 http://www.youtube.com/watch?v=RsyC9Nsv2-8&list=PLoij6udfBncgMtjZi_QTlcgygX_oC_DP-
SortedSet/SortedMap/TreeSet/TreeMap
oct-4 http://www.youtube.com/watch?v=XhZbejHJR6Q&list=PLoij6udfBncgrJhuHJjsn4UU1G2Ko1Zce
SparseMatrix
oct-5 http://www.youtube.com/watch?v=oPSJJeaf1FY&list=PLoij6udfBncgdQDa04m1sJWHwDv2k3s4-
jan-1 http://www.youtube.com/watch?v=oMOOWPORA0c&list=PLoij6udfBncgtPuEsJ-bIQHXpuDzdsls7
jan-2 http://www.youtube.com/watch?v=EvI6KNJE69k&list=PLoij6udfBncheasQmFnqUFXUZgCEpu1nH
jan-3 http://www.youtube.com/watch?v=4iVbqRFWguw&list=PLoij6udfBnciIcceiEJNyj6XziKXYrjSd
jan-4 http://www.youtube.com/watch?v=1vfSNX02rK0&list=PLoij6udfBnci5K2NHEoFpj0fBqd57wiRc
jan-5 http://www.youtube.com/watch?v=RVfdsB-6Bqk&list=PLoij6udfBncieDTktHu4FB4lXZeHYuqU9
feb-1
feb-2
feb-3
feb-1
Generics
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Перебор элементов: Iterable/Iterator, foreach
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Базовая иерархия интерфейсов: Iterable, Collection, Set, List, Map
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Sorted collections: Comparable/Comparator, SortedSet / SortedMap
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Реализации List: ArrayList, LinkedList
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Реализации hash-структур: HashSet, HashMap
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Реализации tree-структур: TreeSet, TreeMap
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Расширенная иерархия интерфейсов: Queue, Deque, RandomAccess, NavigableSet, NavigableMap, ???
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
ООП в Java
Object construction
oct-1 http://www.youtube.com/watch?v=yfurfDouX9Q&list=PLoij6udfBnciHWNruQflkcL5M2ui2ItmK
Overriding/Overloading
oct-2 http://www.youtube.com/watch?v=A3d_vut4Crc&list=PLoij6udfBncg4dx0CKuQwEl6khjApy_ru
oct-3 http://www.youtube.com/watch?v=kLDI76zEnVQ&list=PLoij6udfBncjbWQwiK2qu9jXjzjVOVk2G
Inner / Nested/ Anonimous Inner / Anonimous Nested
oct-4 http://www.youtube.com/watch?v=XfE2FpJsw3Q&list=PLoij6udfBncjuo6mckG-YaKYojS9HktFt
jan-1 http://www.youtube.com/watch?v=r6NqQyI_UFM&list=PLoij6udfBnchOsRw4E4v1IgOQkMReq89q
jan-2
jan-3
jan-4
feb-1
feb-2
feb-3
feb-1
Конструирование объекта: конструктор по умолчанию, делегирование другому конструктору - this(), явный вызов конструктора предка - super().
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Overloading/overriding: шаблонTemplate method, double dispatch, Visitor
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Ссылочные типы: Class, interface, abstract class, enum, массив
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Inner / nested classes: Listener, Command, anonimous classes, memory leak over inner classes
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Marker interface: Cloneable, Serializable, RandomAccess
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Принципы OOP: инкапсуляция, полиморфизм, наследование, абстракция
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Принципы OOD: SOLID (SRP, OCP, LSP, ISP, DIP), SLAB
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Summary
oct http://www.youtube.com/watch?v=mwju_-BlGHg&list=PLoij6udfBncgjdfdnWf0McpdfffAGibHo
Junior
TDD:
assert:
J2SE 1.4 Assertion Facility
Programming With Assertions
Проверка утверждений (assertions) и условная компиляция
Итерация (циклы): while/for, итеративные алгоритмы (слияние сортированных массивов, инвертирование массива, бинарный поиск, сортировка пузырьком, сортировка выборками, сортировка вставками)
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Рекурсия: рекурсия с ветвлением и без, рекурсия прямая и косвенная, рекурсивные алгоритмы (сортировка слиянием, быстрая сортировка, Ханойская башня, генерация перестановок, парсер арифметических выражений)
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Динамические структуры данных: односвязный список, двусвязный список, бинарное дерево, дуальность итерации и рекурсии
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Организация памяти в Java: стек, куча, передача по ссылке/по значению, PermGen, gc на основе поиска достижимых объектов
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
oracle.com: Memory Management in the Java HotSpot™ Virtual Machine
java.net: HotSpot internals: Storage Management
habrahabr.ru: Размер Java объектов
-Xmx, -Xms, -Xss:
"Внутренности" Oracle HotSpot JVM
Deep dive into assembly code from Java
Hotspot internals Q&A
Compressed object pointers in Hotspot VM
Java HotSpot™ Virtual Machine Performance Enhancements
Микротестирование HotSpot
Финализация (finalize()) и "уборка мусора"
Странности финализации
Исключения в Java
Синтаксис исключений - I: try, catch, finally, throw
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Синтаксис исключений - II: checked / unchecked, throws
Видео: запись группы октябрь-2012
Видео: запись группы январь-2013
Видео: запись группы февраль-2013
Как устроено исключение: stack trace, chained exceptions (getCause()), message (getMessage())
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Семантика исключений: Throwable / Error/ Exception / RuntimeException, построение своей иерархии исключений, стандарты реагирования на исключения, популярные исключения JDK
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013
Видео: запись группы февраль-2013
Исключения в Java 7: try-with-resources, multi-catch, suppressed exceptions, more precise rethrow.
Видео: запись группы февраль-2013.
Многопоточность в Java
Thread/Runnable: поток/процесс, start(), run(), join(), currentThread(), ?шаблон Command pattern, ?Callable
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013
Monitor: synchronized, wait(), notify(), notifyAll(), wait-set, blocked-set
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013 (часть I).
Видео: запись группы февраль-2013 (часть II).
Остановка потока: interrupt(), InterruptedException, interrupted(), isInterrupted(), stop(), destroy(), suspend(), resume()
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Видео: запись группы февраль-2013.
Sun/Oracle Concurrency Tutorial
Нить, которую разбудит HotSpot
Немного о deadlocks (RU)
Модель памяти Java (RU)
"Случайный" выход из Object.wait() (spurious wakeup)
Тайна случайных пробуждений (spurious wakeup)
Введение в java.util.concurrent internal (RU)
Организация многопоточных приложений
pthreads: "While this problem could be resolved, the loss of efficiency for a
fringe condition that occurs only rarely is unacceptable, especially
given that one has to check the predicate associated with a condition
variable anyway. Correcting this problem would unnecessarily reduce the
degree of concurrency in this basic building block for all higher-level
synchronization operations."Linux: spurious wakeup
JavaMemoryModel: Waits, Interrupts and Notify-s
Ввод/вывод в Java
oct-1 http://www.youtube.com/watch?v=jSCmYlY_Cfs&list=PLoij6udfBncgLfKp6jg4CqFtcAjWROKjz
oct-2 http://www.youtube.com/watch?v=J4L4UQnbjGc&list=PLoij6udfBncgn1sytlKEbHjZXA1zLN7FN
oct-3 http://www.youtube.com/watch?v=PrVomQoL83Y&list=PLoij6udfBncjiOu_qo_x-JMJ_wOPS4XNY
oct-4 http://www.youtube.com/watch?v=YAjhnZ0styI&list=PLoij6udfBncjnnr9291uZZmeURO0Ckqrv
Serialization / Cloning
oct-5 http://www.youtube.com/watch?v=bhuPg_UgTNA&list=PLoij6udfBncihtl8mXDeA6Pta75nKase8
jan-1 http://www.youtube.com/watch?v=naA2O0ZKdPs&list=PLoij6udfBncgpHfPhd_lfL-KO0QWhCwHV
jan-2 http://www.youtube.com/watch?v=hmRCwKjLHls&list=PLoij6udfBncjVTfGXgAfTzGuEINMMr09K
jan-3 http://www.youtube.com/watch?v=amMaAPG3cCA&list=PLoij6udfBnchpa4sx9y5q7pul92Il3i6L
jan-4 http://www.youtube.com/watch?v=VDJiKwZTG-Q&list=PLoij6udfBncjGKi5lRbwGgl-00NhvsHJx
feb-1
feb-2
feb-3
feb-1
Byte-oriented streams: InputStream, OutputStream, ByteArrayInputStream, ByteArrayOutputStream
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Шаблоны: Decorator, Adapter
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Char-oriented streams: Reader, Writer, InputStreamReader, OutputStreamWriter
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
I/O buffering: BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWrited
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Primitive-oriented streams: DataInput, DataOutput, DataInputStream, DataOutputStream
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Files: File, FileInputStream, FileOutputStream, RandomAccessFile, ?symbolic links, ?FS roots
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Serialization+clone(): глубокое и поверхностное копирование, Serializable, Cloneable, NotSerializableException, CloneNotSupportedException, transient, ObjectInput, ObjectOutput, ObjectInputStream, ObjectOutputStream
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Коллекции в Java
oct-1 http://www.youtube.com/watch?v=bl0Ql9YW8QA&list=PLoij6udfBncjWGJ2aQ0nweKSD4SgwdpUN
List/ArrayList/LinkedList
oct-2 http://www.youtube.com/watch?v=gJGNO-np2TU&list=PLoij6udfBnci78aOzgebyeWrK5c1LeJCo
HashMap/HashSet
oct-3 http://www.youtube.com/watch?v=RsyC9Nsv2-8&list=PLoij6udfBncgMtjZi_QTlcgygX_oC_DP-
SortedSet/SortedMap/TreeSet/TreeMap
oct-4 http://www.youtube.com/watch?v=XhZbejHJR6Q&list=PLoij6udfBncgrJhuHJjsn4UU1G2Ko1Zce
SparseMatrix
oct-5 http://www.youtube.com/watch?v=oPSJJeaf1FY&list=PLoij6udfBncgdQDa04m1sJWHwDv2k3s4-
jan-1 http://www.youtube.com/watch?v=oMOOWPORA0c&list=PLoij6udfBncgtPuEsJ-bIQHXpuDzdsls7
jan-2 http://www.youtube.com/watch?v=EvI6KNJE69k&list=PLoij6udfBncheasQmFnqUFXUZgCEpu1nH
jan-3 http://www.youtube.com/watch?v=4iVbqRFWguw&list=PLoij6udfBnciIcceiEJNyj6XziKXYrjSd
jan-4 http://www.youtube.com/watch?v=1vfSNX02rK0&list=PLoij6udfBnci5K2NHEoFpj0fBqd57wiRc
jan-5 http://www.youtube.com/watch?v=RVfdsB-6Bqk&list=PLoij6udfBncieDTktHu4FB4lXZeHYuqU9
feb-1
feb-2
feb-3
feb-1
Generics
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Перебор элементов: Iterable/Iterator, foreach
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Базовая иерархия интерфейсов: Iterable, Collection, Set, List, Map
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Sorted collections: Comparable/Comparator, SortedSet / SortedMap
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Реализации List: ArrayList, LinkedList
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Реализации hash-структур: HashSet, HashMap
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Реализации tree-структур: TreeSet, TreeMap
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Расширенная иерархия интерфейсов: Queue, Deque, RandomAccess, NavigableSet, NavigableMap, ???
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
ООП в Java
Object construction
oct-1 http://www.youtube.com/watch?v=yfurfDouX9Q&list=PLoij6udfBnciHWNruQflkcL5M2ui2ItmK
Overriding/Overloading
oct-2 http://www.youtube.com/watch?v=A3d_vut4Crc&list=PLoij6udfBncg4dx0CKuQwEl6khjApy_ru
oct-3 http://www.youtube.com/watch?v=kLDI76zEnVQ&list=PLoij6udfBncjbWQwiK2qu9jXjzjVOVk2G
Inner / Nested/ Anonimous Inner / Anonimous Nested
oct-4 http://www.youtube.com/watch?v=XfE2FpJsw3Q&list=PLoij6udfBncjuo6mckG-YaKYojS9HktFt
jan-1 http://www.youtube.com/watch?v=r6NqQyI_UFM&list=PLoij6udfBnchOsRw4E4v1IgOQkMReq89q
jan-2
jan-3
jan-4
feb-1
feb-2
feb-3
feb-1
Конструирование объекта: конструктор по умолчанию, делегирование другому конструктору - this(), явный вызов конструктора предка - super().
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Overloading/overriding: шаблонTemplate method, double dispatch, Visitor
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Ссылочные типы: Class, interface, abstract class, enum, массив
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Inner / nested classes: Listener, Command, anonimous classes, memory leak over inner classes
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Marker interface: Cloneable, Serializable, RandomAccess
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Принципы OOP: инкапсуляция, полиморфизм, наследование, абстракция
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Принципы OOD: SOLID (SRP, OCP, LSP, ISP, DIP), SLAB
Видео: запись группы октябрь-2012.
Видео: запись группы январь-2013.
Summary
oct http://www.youtube.com/watch?v=mwju_-BlGHg&list=PLoij6udfBncgjdfdnWf0McpdfffAGibHo
Junior
TDD:
assert:
J2SE 1.4 Assertion Facility
Programming With Assertions
Проверка утверждений (assertions) и условная компиляция