【发布时间】:2015-06-29 12:39:56
【问题描述】:
我一直在阅读 Java 8 Streams 以及从数据源流式传输数据的方式,而不是从整个集合中提取数据。
我在an article 上读到的这句话特别是关于 Java 8 中的流。
没有存储空间。流没有存储值;它们通过计算步骤的管道从源(可以是数据结构、生成函数、I/O 通道等)携带值。
我理解从源中逐个流式传输数据的概念。我不明白的是,如果您从集合中流式传输,怎么没有存储空间?该集合已经存在于堆上,您只是从该集合中流式传输数据,该集合已经存在于“存储”中。
如果我只是用标准的 for 循环遍历集合,那么在内存占用方面有什么区别?
【问题讨论】:
标签: java memory collections java-8 java-stream