[Java lista] array
eMeL
emel at emel.hu
2009. Dec. 12., Szo, 01:20:58 CET
> A tömb hosszának csökkentése nem olyan triviális, ha belegondolsz,
> ugyanis a GC-nek is tudni kell róla. Vagy nyomonkövetnie az "aktuális"
> hosszt és a memóriából lefoglalt hosszt, vagy pedig újra kéne
> lefoglalnia manuálisan minden ilyen csökkentés esetén. S akkor meg
> ugyanott vagyunk, mint voltunk :)
Ezt nem látom be.
Értelmezésemben (ha objektum tömb, akkor az utolsó elemeket NULL-ozza,
egyébként érdektelen) és a tömb objektum hossz mezőjét módosítja.
Arról volt szó, hogy a tömbnek foglalt terület megmarad, csak a hoszz
csökken (kizárólag csökken). [*]
Nem hinném, hogy a Jáva objektumok nem egyszerűen egy memória pointert
kapnak a lefoglalt területre és csak a GC/memoria_menedzser ismeri a
lefoglalt terület valódi hosszát [mint a C heapnál].
Ugyanis az objektumnak nem sok köze van ahhoz, hogy pl. erőforrás
optimalizálás okból [**] nagyobb területet foglaltak neki mint amit kért.
[**] pl. 16-32-x bytehatárra illeszt mindent vagy a kiválasztott szabad
memória töredék kiosztásakor úgy dönt nem érdemes még ketté hasítani,
mert a maradék túl apró lenne, stb.
[*] természetesen egy segédváltozóval egyszerűen kikerülöm a problámát,
de tisztább-szárazabb (és OOP-bb szemléletű), ha a Tomb.length-t
használom egy hasznalthosszTomb független vátozó helyett.
eMeL
További információk a(z) Javalist levelezőlistáról