我最近想知道InputStream int read(byte[] b)方法之类的函数是如何工作的。我知道Java总是按值传递方法参数,而不是通过引用传递。
知道这一点,我不理解空字节数组在将其传递给read方法后如何包含值(假设在InputStream中有要读取的字节)。据我所知,只有内部触及传递给read方法的值,唯一的输出应该是读取字节数(整数返回值)。但是字节数组仍然以某种方式填充。
这是如何实际完成的?
答案 0 :(得分:2)
对byte []的引用作为值传递。通过引用传递意味着传递了持有byte []引用的变量的地址。
答案 1 :(得分:0)
像数组这样的对象通过引用传递。您可以将其视为指针的对象变量,并且该指针通过值传递,这相当于同一个东西。它只是像真实和浮动一样的灵长类动物才能真正按价值传递。