[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