Курсы

Предзаказ

Kotlin / JVM структуры данных

Разобранный смартфон: слои экрана, платы и корпуса

О курсе

Разберем буквально по косточкам JVM структуры данных — от обычных массивов до HashMap и TreeMap, посмотрим на устройство объектов в памяти, сравним структуры данных между собой, измерим скорость их работы через самописные бенчмарки. Отдельно заглянем в Android и разберём структуру данных SparseArray — более легковесная реализация HashMap, узнаем для чего она нужна и насколько эффективна. После прохождения курса вы сможете самостоятельно приступить к изучению других структур данных, научитесь писать для них бенчмарки, сможете посмотреть насколько эффективно они занимают JVM память и самое главное у вас появится больше желание разбираться в чем либо, по крайней мере надеюсь на это)

  1. 01

    Массивы

    Закрыт

    Рассмотрим как массивы устроены в JVM памяти, как работает алгоритм получения значений по индексу, чем отличаются массивы примитивных типов от ссылочных и как это влияет на производительность.

  2. 02

    ArrayList

    Закрыт

    Как массивы превращаются в ArrayList: буквально разберем по косточкам устройство ArrayList и фишки его реализации.

  3. 03

    LinkedList vs ArrayList

    Закрыт

    Как можно построить список значений без использования массивов и в чем польза такого подхода?

  4. 04

    HashMap

    Закрыт

    Почему HashMap так быстро работает, разберем подробно устройство хэш-функции и ее зависимость от hashCode() метода.

  5. 05

    TreeMap

    Закрыт

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

  6. 06

    Kotlin Collections API

    Закрыт

    Тут можно выдохнуть и расслабиться, самые сложные реализации уже позади, теперь можно по кайфу посмотреть как Kotlin переиспользует JVM структуры данных.

  7. 07

    Kotlin Collection Extensions

    Закрыт

    Покопаемся в исходниках map, filter, flatMap, groupBy и тд, посмотрим насколько эффективно они используют память.

  8. 08

    Kotlin Sequences API

    Закрыт

    Чем полезен Sequences API, что внутри и как можно обойтись без него с помощью простого цикла?

  9. 09

    Android SparseArray

    Закрыт

    Насколько можно сэкономить память кучи если создать HashMap у которой в качестве ключей примитивный тип int?

  10. 10

    Итоги

    Закрыт

    Подведем итоги.

канал

android_under_the_hood

Перейти в Telegram