对于 java.io.InputStream,有两个主要的读取函数int read()和public int read(byte[] b, int off, int len)。
同样,对于 java.io.OutputStream 有两个函数write(b) 和 write((byte[] b, int off, int len))
虽然我理解基本区别,但在阅读 write(b) 的描述时,它说“要写入的字节是参数 b 的 8 个低位。b 的 24 个高位是无视。”。现在如果是这种情况,那么我们实际上是在浪费 CPU 会为整数加载的 32 位指令集中剩余的 24 位。相反,如果我使用另一个写入 ((byte[] b, int off, int len)),那么我将占用堆/堆栈来获取字节数组的大小。虽然我试图考虑哪个更适合高可扩展性,但我不能忽略 write(b) 浪费 24 位(3 个字节),而另一方面,如果我使用 read/write(byte[] b, int off, int len),我冒着更高的堆栈大小的风险。那么,最好的选择是什么?
在一种解决方法中,我尝试扩展 InputStream 和 OutputStream 并通过提供一个字节 [4] 来使用所有 32 位来覆盖 read(b) 和 write(b) 函数。它工作得很好,但仍然需要看看这是否有任何性能增强。它与使用 read/write(4, 0, int 4) 非常相似
我将不胜感激有关此主题的任何帮助/评论。