|
0
|
| Illarion Kovalchuk · 技术社区 · 15 年前 |
|
|
1
3
这是一个非常普遍的问题,但我要说的是,有很多层缓冲输入流(在任何语言中)都有很多问题。
只是对这件事的一些想法。我相信有更好的Java知识的人可以提供更详细的分析。 |
|
|
2
1
由于额外的缓冲区,它会增加内存占用,但我怀疑,考虑到可能涉及的大小,它实际上会对给定的程序产生重大影响。这是一条标准规则,在你需要优化之前不要尝试优化。
这完全取决于它被使用了多少,如果有很多大的链条它可能是一个问题,但我认为它不太可能是一个问题。 正如David所说,这可能是设计糟糕的一个迹象,组件能够直接共享更复杂的对象可能会更有效,但这完全取决于具体的用途(我很难想到这样使用多个缓冲流的原因)。 |
|
|
3
1
这确实是非常糟糕的做法,而且确实会导致错误。如果方法A执行一些读取,然后将流传递给方法B,方法B附加一个BufferedInputStream并执行更多的读取,则BufferedInputStream将填充其缓冲区,这可能会消耗方法B返回时方法A预期仍在那里的数据。方法B的缓冲输入流提前读取可能会丢失数据。
|