verificar descargar java

java - descargar - ¿Cerrar un ByteArrayOutputStream no tiene ningún efecto?



java offline (1)

¿Qué significa esta afirmación, "Cerrar un ByteArrayOutputStream no tiene ningún efecto" ( http://java.sun.com/javase/6/docs/api/java/io/ByteArrayOutputStream.html#close() )?

Quiero asegurarme de que se libere la memoria en ByteArrayOutputStream . ¿ ByteArrayOutputStream.close() realmente libera la memoria?

Gracias.


¿ByteArrayOutputStream.close () realmente libera la memoria?

No. No hace absolutamente nada. Puedes mirar su código fuente:

public void close() throws IOException { }

Para liberar la memoria, asegúrese de que no haya referencias a ella y permita que el recolector de basura haga su trabajo. Al igual que con cualquier otro objeto normal.

Las secuencias basadas en archivos y sockets son especiales porque utilizan recursos del SO que no son de memoria (manejadores de archivos) que pueden agotarse independientemente de la memoria. Es por eso que cerrarlos explícitamente es importante. Pero esto no se aplica a ByteArrayOutputStream puramente basado en la memoria.