2017-08-12 165 views
0

在下面的代码中,ByteArrayOutputStream的数据在RAM或硬盘上存储在哪里?ByteArrayOutputStream的数据存储在RAM或硬盘上?

ByteArrayOutputStream bOutput = new ByteArrayOutputStream(12); 

while(bOutput.size()!= 10) { 
    // Gets the inputs from the user 
    bOutput.write("hello".getBytes()); 
} 
+0

ByteArrayOutputStream类流在内存[ram]中创建一个缓冲区。对于性能严重的代码,请尝试使用ByteBuffer而不是ByteArrayOutputStream。如果一起使用同步和ByteArrayOutputStream,则摆脱同步部分。 – Vaibs

回答

0

将它存储在一个数组(byte [] b)中,并且每个变量都存储在ram中!
流本身只存储数组中的数据。流也被保存在公羊!

+0

写入bOutput的数据也将只存储在RAM上? –

+0

输出流是一个对象!如果你写它,它将存储在对象 - > Ram – Niton

+0

谢谢,在我的proj我必须一次下载像10gb,4或5这样的巨大文件和一个下载完成我有上传他们,在我的开发机器我用8GB内存内存不足,但在QA与16GB我不明白为什么 –

1

该对象将被分配到JAVA堆中,该堆将在RAM中,但是,根据您的系统配置情况,如果内存耗尽,可能会将其移至磁盘上的交换分区。这与JVM的分配无关,而是操作系统如何分配/管理内存。

简单的答案是:RAM

相关问题