Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在寻找在我的应用程序中做的最佳方法,现在我想知道:
我通过读取 InputStream 收到了一个字节数组 (byte[])。然后我要做一些处理,所以我将这个数组作为方法的参数传递。来自 C++ 语言,因为我必须尽可能快地进行这种处理,而且很多时候,我想知道按值传递字节数组是否不会导致问题。
是否值得创建一个 ByteBuffer 对象来传递对我的方法的引用而不是值?
感谢您的帮助和建议。
在 Java 中,数组是对象,因此您实际上是将引用变量的副本传递给该对象。
C++ 中的 IIRC 传递数组相当于传递指向第一个元素的指针。
传递byte[]引用就像传递序数对象引用一样。不会复制数组。不值得用ByteBuffer.
byte[]
ByteBuffer
一般来说,使用原始类型会更快,因为它需要更少的内存来存储数据。
因此,我建议保留字节数组解决方案。这当然取决于你打算用它做什么“治疗”:)