本帖最后由 u012372268 于 2014-11-20 15:36:41 编辑

解决方案 »

  1.   

    http://blog.csdn.net/niuniu20008/article/details/2953785
      

  2.   

    java的参数传递模式是值传递,只是将变量中的值复制一份,然后赋值给形参,整个方法中值的变化不影响原有变量中的值。不过需要注意以下两点:
    (1)方法有返回值时,将返回值赋值给原变量,例如 square(int x)方法的作用是返回x*x,若果单纯的执行square(a),则a的
    值不会发生任何改变,但如执行语句a=square(a),则变量a先将所代表的值赋值给形参x,然后执行square()方法,此时变量a任是原值,最后执行“=”运算,将方法返回的值赋值给变量a,此时变量a的值才发生改变,但在执行方法时,a的值没有发生任何改变。这一点容易引起混淆,以为在执行方法时,a的值已经发生改变;
    (2)还有一个容易引起混淆的地方时,引用变量的值传递。引用变量中存储的是对象在堆中的地址,在参数传递时,由于是值传递,传给形参的也是对象在堆中的地址,此时形参的变化就是对象的变化。
         以上两点容易混淆,要理清楚,要把握住:java的参数传递方式——值传递。
      

  3.   

    http://blog.csdn.net/cocoa_cactus/article/details/16992091