Главная
Вход
Регистрация
Пятница, 03 Май 2024, 22:47:40 Приветствую Вас Гость | RSS
Меню сайта

Категории раздела
Общедоступные статьи [17]

Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Общедоступные статьи

0003_04 - Переменные, массивы и матрицы в памяти

Каждая ячейка памяти имеет свой адрес. Создавая переменную, мы привязываем её к адресу физической ячейки памяти. Таким образом, переменная в Java - это всего лишь ссылка на ячейку памяти по физическому адресу этой ячейки с указанием типа данных, который хранит эта ячейка:

Размер ячейки зависит от железа. И любой тип данных, за исключением строк и массивов, занимает полностью одну ячейку памяти. 8 байт (64 бита) - наименьшая величина стека. На современном железе ячейка памяти может занимать 16 байт (128 бит), 32 байта (256 бит), 64 байта (528 бит) и даже 128 байт (1024 бита).

Единица данных различного типа имеет различный объём в битах:

Но оказываясь в ячейке памяти, занимает её полностью:

С массивами дело обстоит немного по другому. Переменная массива имеет адрес начальной ячейки, а дальше - элементы массива "прилепляются" друг к другу и при заполнении собой одной ячейки памяти, начинают заполнять следующую по порядку адресации ячейку и т.д.:

Java может работать и с многомерными массивами, которые могут не являться матрицами и кубами - каждый подмассив может иметь различную размерность. Это усложняет работу и чтобы её упростить, принято двумерные массивы представлять в виде матриц, трёхмерные - в виде кубов и более многомерные - в виде n-кубов. В этом случае элементы многомерных массивов всё равно будут идти последовательно "в одну строку", но не будет проблем с пустыми ячейками при последовательном переборе элементов массива:

До встречи в следующем уроке.

Категория: Общедоступные статьи | Добавил: FireSnake (10 Дек 2015)
Просмотров: 734 | Комментарии: 1 | Теги: Адрес, ссылки, массивы, размеры, Память, Разряды, матрицы, Адресация, хранение, переменные | Рейтинг: 5.0/2
Всего комментариев: 0
avatar
Вход на сайт

Поиск

Группа VK