java吧 关注:1,298,672贴子:12,836,213

回复:为什么选中的语句输出不是54321?

只看楼主收藏回复

比如你main里的oldlist的地址是1 你当做参数传进去这个方法就是把1传进去 然后你在方法里你使用new定义了newlist它的地址是2 你做的一串操作都是对地址2的操作 然后你让这个list=newlist也就是让list的地址变成了2 但外面的oldlist地址始终是1 1地址的内容始终没有发生改变


IP属地:山东来自Android客户端20楼2021-01-05 07:33
收起回复
    参数返回无效,用Array.copy() 可以


    IP属地:广西来自iPhone客户端21楼2021-01-05 11:28
    回复
      2026-03-04 17:30:25
      广告
      不感兴趣
      开通SVIP免广告
      记得好像是数组定义好了后,就不能对数组内容进行改变了


      IP属地:河北来自Android客户端22楼2021-01-05 11:36
      收起回复
        引用的oldlist引用的值并没有改变


        来自iPhone客户端23楼2021-01-05 11:55
        回复
          因为是int数组


          IP属地:安徽来自iPhone客户端24楼2021-01-05 12:59
          回复
            .


            IP属地:江苏25楼2021-01-05 13:44
            回复
              传了地址给形参,把形参的地址改了,就这你还想改本体不成?


              IP属地:广东来自Android客户端26楼2021-01-05 14:22
              回复
                java一直是按值传递,你传过去的只是list引用的一个副本,不会改变原来的list


                IP属地:四川来自Android客户端27楼2021-01-05 15:38
                收起回复
                  2026-03-04 17:24:25
                  广告
                  不感兴趣
                  开通SVIP免广告
                  oldlist=reverse(oldlist)应该就可以了吧。不过用List类的话就是引用传递了。


                  IP属地:广东来自Android客户端29楼2021-01-05 16:10
                  回复
                    list只是reverse过程调用栈上的一个引用类型的局部变量,调用完reverse后栈帧就收回了。
                    你应该用list这个引用去修改对象,这样oldlist引用的这个对象才会变。


                    IP属地:北京来自Android客户端30楼2021-01-05 16:56
                    回复
                      应为你的newlist没有赋值给oldlist


                      IP属地:上海来自Android客户端31楼2021-01-05 17:35
                      回复
                        很经典的scope问题,你需要把reverse改成return method,不然你reverse里只是copy value后操作,并不影响你原本需要的


                        IP属地:美国来自iPhone客户端32楼2021-01-05 17:48
                        回复
                          这时候又要谈java到底是值传递还是引用传递了


                          来自Android客户端35楼2021-01-05 17:58
                          回复
                            要在方法里对数组元素进行修改是可以的,你这几年只是修改了引用,方法是有作用域的,里面声明的变量只在里面有效,你可以换个角度,直接对数组的值进行修改是可以的,改引用,不行


                            来自iPhone客户端36楼2021-01-05 22:23
                            回复