Функция случайных вопросов поможет вам подумать и проверить свои знания.
Попробуйте ответить на вопросы устно или в уме, а затем нажмите на сам вопрос, чтобы сравнить свой ответ и проанализировать его.
Что вы упустили? А может быть, вы знаете гораздо больше? Так или иначе, это хорошая практика. :)
В базе данных хранится около 500 вопросов, охватывающих различные темы из категорий таких как Core-1, Core-2, Многопоточность, SQL, Hibernate, Spring, Паттерны, Алгоритмы.
В категории M-BOSS находятся вопросы, которые могут встречаться на технических собеседованиях Java - разработчиков. (взято из открытых источников)
Приглашаю вас присоединиться к телеграм-группе для обратной связи и получения информации о будущих обновлениях! Хочу вас также пригласить в дискорд, для общения на различные темы о Java и не только в ламповой атмосфере.
Дискорд будет пополняться не сложными практическими задачами, которые будут помогать прокачивать навыки технического мышления!
Заходите на канал "задачи-по-java" и оттачивайте свои навыки!
Помните: Именно кропотливый труд над собой, делает из вас профессионала высокого уровня!
Приятного обучения!

Оцените количество памяти для хранения одного примитива типа byte в LinkedList?

Core - 2

Для хранения одного примитива типа `byte` в `LinkedList` требуется дополнительная память для создания нового узла списка. Каждый узел в `LinkedList` содержит ссылку на следующий узел и значение элемента. Каждый элемент LinkedList хранит ссылку на предыдущий элемент, следующий элемент и ссылку на данные. private static class Node<E> { E item; Node<E> next; Node<E> prev; //... } Для 32-битных систем каждая ссылка занимает 32 бита (4 байта). Сам объект (заголовок) вложенного класса Node занимает 8 байт. 4 + 4 + 4 + 8 = 20 байт, а т. к. размер каждого объекта в Java кратен 8, соответственно получаем 24 байта. Примитив типа byte занимает 1 байт памяти, но в JCF примитивы упаковываются: объект типа byte занимает в памяти 16 байт (8 байт на заголовок объекта, 1 байт на поле типа byte и 7 байт для кратности 8). Значения от -128 до 127 кешируются, и для них новые объекты каждый раз не создаются. Таким образом, в x32 JVM 24 байта тратятся на хранение одного элемента в списке и 16 байт – на хранение упакованного объекта типа byte. Итого 40 байт. Для 64-битной JVM каждая ссылка занимает 64 бита (8 байт), размер заголовка каждого объекта составляет 16 байт (два машинных слова). Вычисления аналогичны: 8 + 8 + 8 + 16 = 40 байт и 24 байта. Итого 64 байта. Дополнительная память, выделяемая для каждого узла в `LinkedList` , зависит от структуры самого списка, а также от дополнительных ссылок на первый и последний узлы списка. Общая дополнительная память, выделенная для хранения одного примитива типа `byte` в `LinkedList` , включает в себя память для нового узла, ссылку на следующий узел и, возможно, ссылки на первый и последний узлы списка. Однако стоит отметить, что использование `LinkedList` для хранения большого количества примитивов типа `byte` может быть неэффективным с точки зрения использования памяти. `LinkedList` потребляет больше памяти по сравнению с `ArrayList` , потому что каждый элемент хранится в отдельном узле и требует дополнительных ссылок на связанные узлы. Если вам важна оптимизация использования памяти, рассмотрите возможность использования `ArrayList` , который обычно более эффективен для хранения большого количества примитивных типов данных.

Открыть

Копировать ссылку

ДРУГОЙ ВОПРОС