Middle+
Қимати тахминии ёдгирии зарурии барои нигоҳ доштани як primitive аз навъи byte дар структураи додаҳои LinkedList чӣ қадар аст?
sobes.tech AI
Ҷавоб аз AI
Барои арзёбии хотираи нигоҳдории як примитив byte дар LinkedList<Byte>:
- Примитив
byte: 1 байтро худ ба худ мегирад. - Объект-обгортка
Byte: ДарLinkedListобъектҳо нигоҳ дошта мешаванд, на примитивҳо.byteба автоматӣ ба объектByteбастабандӣ мешавад. ОбъектByteдорои:- Метадонҳои объект (сарлавҳа): одатан 8 ё 12 байт (завис аз JVM).
- Майдони
value: 1 байт (барои арзишиbyte). - Пайвастшавӣ: Объектҳо одатан ба андозаи каломҳои мошин (4 ё 8 байт) баробар мешаванд. Агар сарлавҳа 12 байт ва арзиш 1 байт бошад, 13 байт, эҳтимолан ба 16 байт баробар мешавад.
- Гузариш
LinkedList.Node: Ҳар як унсур дарLinkedListдар дохили синфи дохилӣNodeпӯшида мешавад. Ин узел дорои:- Метадонҳои объект (сарлавҳа): 8 ё 12 байт.
- Майдони
item: Референсия ба объект нигоҳдошта (дар ин ҳолат, объектByte). Референсия одатан 4 ё 8 байт мегирад (завис аз JVM 32- ё 64-бит ва истифодаи нишондиҳандаҳои фишурда). - Майдони
next: Референсия ба узели оянда. 4 ё 8 байт. - Майдони
prev: Референсия ба узели гузашта. 4 ё 8 байт. - Пайвастшавӣ: Андозаи умумии майдонҳо ва сарлавҳа низ баробар мешавад.
Ҳамагӣ (ҷараёни камтар):
- Объект
Byte: 12 байт (сарлавҳа) + 1 байт (арзиш) + 3 байт (паҳншавӣ) = тақрибан 16 байт. - Узели
Node: 12 байт (сарлавҳа) + 4 байт (рефitem) + 4 байт (рефnext) + 4 байт (рефprev) + 4 байт (паҳншавӣ) = тақрибан 28 байт. - Ҳамагӣ: тақрибан 44 байт.
Меъёри оддӣ (JVM 64-бит бо нишондиҳандаҳои фишурдашуда):
- Объект
Byte: 12 байт (сарлавҳа) + 1 байт (арзиш) + 3 байт (паҳншавӣ) = тақрибан 16 байт. - Узели
Node: 12 байт (сарлавҳа) + 4 байт (рефitem) + 4 байт (рефnext) + 4 байт (рефprev) + 0 байт (паҳншавӣ) = тақрибан 24 байт. - Ҳамагӣ: тақрибан 40 байт.
Масъул (ҷараёни баланд):
- Объект
Byte: 12 байт (сарлавҳа) + 1 байт (арзиш) + 3 байт (паҳншавӣ) = тақрибан 16 байт. - Узели
Node: 12 байт (сарлавҳа) + 8 байт (рефitem) + 8 байт (рефnext) + 8 байт (рефprev) + 4 байт (паҳншавӣ) = тақрибан 40 байт. - Ҳамагӣ: тақрибан 56 байт.
Ҳамин тавр, арзёбии хотира барои нигоҳдории як примитиви byte дар LinkedList<Byte> тақрибан 40-60 байт аст, ки бо хароҷоти иловагии объект-обгорткаи Byte ва узели LinkedList.Node вобаста аст. Ин назар ба 1 байт барои худи примитив хеле зиёд аст.