为了账号安全,请及时绑定邮箱和手机立即绑定

这道题为什么选B

这道题为什么选B

皈依舞 2019-03-21 18:19:16
public class Example{   String str=new String("good");   char[]ch={'a','b','c'};   public static void main(String args[]){     Example ex=new Example();     ex.change(ex.str,ex.ch);     System.out.print(ex.str+" and ");     for(int i=0;i<ex.ch.length;i++){System.out.print(ex.ch[i]);}   }   public void change(String str,char ch[]){     str="test ok";     ch[0]='g';   } }A good and abc B good and gbc C test ok and abc D test ok and gbc
查看完整描述

4 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

额,下面已经把'a'改'g'了


查看完整回答
反对 回复 2019-04-16
?
富国沪深

TA贡献1790条经验 获得超9个赞

传值跟传址的原因吧


查看完整回答
反对 回复 2019-04-16
?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

楼上说的不完全对,就算在change方法中不传str参数,change方法依旧无法改变str的值。
说到底,str= "abc"与str=new String("abc")在内存中是完全不同的表现形式。
前者直接指向字符串,而后者指向的是一个String对象。

查看完整回答
反对 回复 2019-04-16
  • 4 回答
  • 0 关注
  • 590 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号