InputStream "int read(byte[] b)" 方法参数是参考吗?

Is the InputStream "int read(byte[] b)" method-parameter a reference?

我最近想知道像 InputStream int read(byte[] b) 方法这样的函数是如何工作的。我知道 Java 总是按值传递方法参数,而不是按引用传递。

知道这一点后,我不明白空字节数组在将其传递给读取方法后如何包含值(假设 InputStream 中有要读取的字节)。据我所知,只有传递给读取方法的值会在内部被触及,唯一​​的输出应该是读取的字节数(整数 return 值)。但是字节数组仍然以某种方式填充。

这到底是怎么做到的?

像数组这样的对象是通过引用传递的。您可以将其视为作为指针的对象变量和该指针按值传递,这相当于同一件事。真正按值传递的只有整数和浮点数这样的原始类型。

对 byte[] 的引用作为值传递。按引用传递意味着传递了包含对 byte[] 的引用的变量的地址。