Sobes.tech
Middle+

Қимати тахминии ёдгирии зарурии барои нигоҳ доштани як primitive аз навъи byte дар структураи додаҳои LinkedList чӣ қадар аст?

sobes.tech AI

Ҷавоб аз AI

Барои арзёбии хотираи нигоҳдории як примитив byte дар LinkedList<Byte>:

  1. Примитив byte: 1 байтро худ ба худ мегирад.
  2. Объект-обгортка Byte: Дар LinkedList объектҳо нигоҳ дошта мешаванд, на примитивҳо. byte ба автоматӣ ба объект Byte бастабандӣ мешавад. Объект Byte дорои:
    • Метадонҳои объект (сарлавҳа): одатан 8 ё 12 байт (завис аз JVM).
    • Майдони value: 1 байт (барои арзиши byte).
    • Пайвастшавӣ: Объектҳо одатан ба андозаи каломҳои мошин (4 ё 8 байт) баробар мешаванд. Агар сарлавҳа 12 байт ва арзиш 1 байт бошад, 13 байт, эҳтимолан ба 16 байт баробар мешавад.
  3. Гузариш 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 байт барои худи примитив хеле зиёд аст.