猿问

这道题为什么选B

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

皈依舞
浏览 592回答 4
4回答

慕运维8079593

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

富国沪深

传值跟传址的原因吧

翻翻过去那场雪

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

相关分类

Java
我要回答