永发信息网

java 为什么这段程序的输出是这样的

答案:3  悬赏:20  手机版
解决时间 2021-11-26 12:31
  • 提问者网友:十年饮冰
  • 2021-11-26 03:13
java 为什么这段程序的输出是这样的
最佳答案
  • 五星知识达人网友:酒安江南
  • 2021-11-26 04:08
increase(X)传入的是x数组,方法中使x数组每个值加一,变了{2,3,4,5,6},而increase(y[0])传入的只是y[]数组中的第一个值,使用的是值传递,传了数字1进去,而数组里的数没有变,所以最后x[]数组为{2,3,4,5,6},y[]数组为{1,2,3,4,5}
全部回答
  • 1楼网友:西岸风
  • 2021-11-26 06:05
你想表达什么?追问为什么y[0]没变成2追答你应该问的是x[0]怎么变成2了,这个很神奇啊,明天我试试,现在睡了,不过我没怎么研究静态代码块的执行过程,明天告诉你吧!追问....x[0]变成2了我知道,我想问的是为什么y[0]没有在原先的基础上+1追答静态方法和变量在内存中的位置和引用你知道吧?给你打个比方吧,你拿一个桶去井里打水,提上来发现桶里有水了,而第二次你拿桶里的勺子去打水,勺子是去提水了,可跟你桶有半毛钱关系啊,勺子是勺子,不是桶本身!只为让你明白静态方法在内存中的状态,别误会,希望你能看懂
  • 2楼网友:行雁书
  • 2021-11-26 04:34
java参数是按值传递的,也就是说increase方法里得到的y只是一个副本,修改副本并不会影响原数组的值。
如果你想问x数组为啥变了,去搜一下java的参数传递方式吧吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯