A
Android under the hood
@android_under_the_hood1.6K подп.
3.2Kпросмотров
26 июля 2025 г.
📷 ФотоScore: 3.6K
Массивы. Начнем с самой базовой структуры данных - массивы, на ней кстати построен всеми известный ArrayList. Массив - это набор значений одного типа, очень важно что именно одного, то есть массив не может содержать одновременно числа и строки, случай с Any и другими объектами объясняется тем что там хранятся ссылки на объекты, а не сами объекты как например числа, а все ссылки имеют одинаковый размер, то есть можно сказать это один тип. Идем дальше, как мы знаем массивы позволяют получать значения по произвольному индексу, отсюда название структуры данных с произвольным доступом, давайте подумаем как можно сохранить в оперативной памяти набор значений из которого можно что то взять по произвольному индексу. Ответ на картинке, мы просто берем кусок памяти, делим его на отдельные кусочки, размер которых равен размеру конкретного типа, например для чисел Int - это 32 бита, для ссылок на Any объекты может быть 32 или 64 бита, в итоге чтобы получить значение скажем из Int массива по индексу 5 надо всего лишь сместиться по памяти на 5 x 32 = 160 битов от начала массива. В итоге получение значений массива по индексу это очень быстрая операция, так как адреса вычисляются через простое арифметическое умножение, вот и весь прикол массивов. Всем не хорошего, а замечательного кода!
3.2K
просмотров
1298
символов
Нет
эмодзи
Да
медиа

Другие посты @android_under_the_hood

Все посты канала →
Массивы. Начнем с самой базовой структуры данных - массивы, — @android_under_the_hood | PostSniper