# byte [] - Array reseten



## bladich (24. November 2006)

Guten Tag zusammen


Ich komm seit Tagen nicht weiter bei meinem Problem.


Ich hab einen byte [] Array welcher als Buffer dient, nun möchte ich den Array nach dem Erhalten einer Nachricht reseten. Im Moment mache ich dies mit

buffer = new byte[1024];

Dies sei aber nicht sauber wurde mir gesagt. Kann ich das irgendwie anderst machen?


Vielen Dank im Vorraus für Antworten.


----------



## flashray (24. November 2006)

Hallo,

was sauberer ist weiss ich nicht. Bei der jetzigen Variante, tust du ein neues ByteArray erstellen und an die Referenzvariable buffer übergeben. Dies hat zur Folge das das alte Bytearrayobjekt für den GC freigegeben wird.

Alternativ könntest du mit einer Schleife das ByteArray durchgehen und jedes Element auf 0 setzen.

Was effizienter, sauberer, besser ist, überlass ich den Profis  !


Vg Erdal


----------



## bladich (24. November 2006)

flashray hat gesagt.:


> Hallo,
> 
> was sauberer ist weiss ich nicht. Bei der jetzigen Variante, tust du ein neues ByteArray erstellen und an die Referenzvariable buffer übergeben. Dies hat zur Folge das das alte Bytearrayobjekt für den GC freigegeben wird.
> 
> ...



Das mit der For-Schleife hab ich total ingoriert. Oo Danke, hoffe nun ist der "Auftraggeber" zufrieden.  

Mir wurde gesagt dass wenn der GC aufräumen muss viel Zeit verloren geht.


----------



## Thomas Darimont (24. November 2006)

Hallo!

So gings auch:

```
byte[] buffer = new byte[1024];
    Arrays.fill(buffer, (byte)0);
```



> Mir wurde gesagt dass wenn der GC aufräumen muss viel Zeit verloren geht.


Das kommt drauf an. Die GC-Dauer für kurzlebige kleine Objekte liegt im Millisekunden Bereich... 

Gruß Tom


----------

