因为b是数组,b的“值”指向的是该数组的存储地址,参数传递时是把该地址值传了过去,read()方法再把数据按该地址值存入,实际上也就存入了原数组。

解决方案 »

  1.   

    Java在单个JVM里如果被传递的是基本类型,就是值传递,如果是对象类型,就是通过引用进行参数传递.
      

  2.   

    同意memphis0815()看法。这是java编程最基本的常识。
    同时如果你知道关于引用是指针的指针的话,对你理解也是很有好处的。除了built-in的类型传值外,其他的东东全部是引用传递的。
      

  3.   

    《java核心技术I》上说参数如果是对象的话是按值传递,而数组也是对象,怎么数组会变成了按引用?????
      

  4.   

    都是按值来传递。
    但是一定要注意弄清楚引用和对象本身的区别,跟c++里面的概念有很大区别(跟delphi类似)
      

  5.   

    在java中只有基本类型是按值来传递的
      

  6.   

    在书上查了一下,对象和基本类型确实是按值传递。但数组比较特殊,《核心技术I》p64上说:“由于java中的数租实际上是隐藏引用,所以java中的方法就能改变数组中的元素。”OK,问题解决了,感谢大家,散分。