среда, 1 августа 2012 г.

compact: java core

Процедурное программирование в 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
       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) и условная компиляция