[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-collections-otsenite-kolichestvo-pamyati-na-khranenie-odnogo-primitiva-tipa-byte-v-linkedlist":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":17,"progress":18,"seo":19},455,"otsenite-kolichestvo-pamyati-na-khranenie-odnogo-primitiva-tipa-byte-v-linkedlist",12,"collections","Collections","📚","Оцените количество памяти на хранение одного примитива типа byte в LinkedList","LinkedList не может хранить примитивы напрямую — значение `byte` автоматически упаковывается в объект `Byte` (autoboxing). Кроме самого значения, каждый элемент хранится в объекте Node с тремя ссылками.\n\nДля x32 JVM:\n\n- Node: заголовок 8 байт + 3 ссылки по 4 байта = 20 байт, с padding = 24 байта\n- Byte: заголовок 8 байт + 1 байт данных = 9 байт, с padding = 16 байт\n- Итого: 24 + 16 = 40 байт\n\nДля x64 JVM:\n\n- Node: заголовок 16 байт + 3 ссылки по 8 байт = 40 байт\n- Byte: заголовок 16 байт + 1 байт данных = 17 байт, с padding = 24 байта\n- Итого: 40 + 24 = 64 байта\n\nЗначения byte от -128 до 127 кэшируются в `Byte.cache`, поэтому новые объекты Byte для них не создаются — используются ссылки на кэшированные экземпляры. Но Node создается при каждом add().\n\n> **На собеседовании:** покажите, что умеете считать расходы памяти. Упомяните autoboxing, кэш Byte, заголовок объекта и padding.","","middle",[15,16],"memory","jcf",[],null,{"title":20,"description":21,"ogTitle":22,"ogDescription":23,"keywords":24,"schemaAnswer":35,"featuredSnippetReady":36},"Память на byte в LinkedList — 40-64 байта — Gymterview","x32: Node 24 + Byte 16 = 40 байт. x64: Node 40 + Byte 24 = 64 байта. Autoboxing, кэш Byte -128..127, заголовок объекта, padding.","Расход памяти на byte в LinkedList — Gymterview","40 байт (x32) или 64 байта (x64) на один byte: Node + Byte wrapper. Autoboxing и кэш Byte.",[25,26,27,28,29,30,31,32,33,34],"LinkedList","byte","память","autoboxing","Byte","Node","padding","заголовок объекта","Java","собеседование","x32: Node (24 байта) + Byte (16 байт) = 40 байт. x64: Node (40 байт) + Byte (24 байта) = 64 байта. Примитив byte упаковывается в Byte (autoboxing). Значения -128..127 кэшируются.",true]