Java(Android)如何重用空闲内存?

Java(Android)如何重用空闲内存?,java,android,memory-management,Java,Android,Memory Management,我有一个Android应用程序,它通过网络一个接一个地读取大量字节块,然后将它们组合成一个大缓冲区。比如说, ByteArrayOutputStream outputStream = new ByteArrayOutputStream( ); while (i < 10) { // read is an API in a lib that returns byte[]. byte[] bytes = API.read(); outputStream.write(b

我有一个Android应用程序,它通过网络一个接一个地读取大量字节块,然后将它们组合成一个大缓冲区。比如说,

ByteArrayOutputStream outputStream = new ByteArrayOutputStream( );

while (i < 10) {
    // read is an API in a lib that returns byte[].
    byte[] bytes = API.read();
    outputStream.write(bytes);
    i++;
}

...
ByteArrayOutputStream outputStream=newbytearrayoutputstream();
而(i<10){
//read是库中返回字节[]的API。
byte[]bytes=API.read();
outputStream.write(字节);
i++;
}
...

问题是关于字节的内存。有没有办法强制Java对所有读取使用相同的字节块?所以它不必释放和分配太多内存?JAVA运行时会优化这个案例吗?谢谢。

字节[]将被垃圾收集。在这种情况下,使用NIO是不合适的,因为您无论如何都会得到byte[],尽管它以后可能会派上用场

在每次循环迭代中,将创建一个
字节[]
,并用数据填充,从中读取到流中,然后不再使用。一旦内存不足(或更早,具体取决于JVM的运行方式),阵列将被删除,内存将可用


大多数时候你不必担心这些事情(除非你连接了大量的字符串,这是非常低效的)。

字节[]将被垃圾收集。在这种情况下,使用NIO是不合适的,因为您无论如何都会得到byte[],尽管它以后可能会派上用场

在每次循环迭代中,将创建一个
字节[]
,并用数据填充,从中读取到流中,然后不再使用。一旦内存不足(或更早,具体取决于JVM的运行方式),阵列将被删除,内存将可用


大多数时候你不必担心这些事情(除非你连接了大量的字符串,这是非常低效的)。

字节[]将被垃圾收集。在这种情况下,使用NIO是不合适的,因为您无论如何都会得到byte[],尽管它以后可能会派上用场

在每次循环迭代中,将创建一个
字节[]
,并用数据填充,从中读取到流中,然后不再使用。一旦内存不足(或更早,具体取决于JVM的运行方式),阵列将被删除,内存将可用


大多数时候你不必担心这些事情(除非你连接了大量的字符串,这是非常低效的)。

字节[]将被垃圾收集。在这种情况下,使用NIO是不合适的,因为您无论如何都会得到byte[],尽管它以后可能会派上用场

在每次循环迭代中,将创建一个
字节[]
,并用数据填充,从中读取到流中,然后不再使用。一旦内存不足(或更早,具体取决于JVM的运行方式),阵列将被删除,内存将可用

在大多数情况下,您不必担心这些事情(除非您连接了大量的字符串,这是非常低效的)