黑马程序员技术交流社区

标题: 比较坑的测试题 2 [打印本页]

作者: liuchenguangqnm    时间: 2016-4-18 23:48
标题: 比较坑的测试题 2
下面程序的运行结果是什么(A)
  public static void main(String[] args){
    String s1 = “abc”;
    String s2 = “xyz”;
show(s1,s2);
System.out.println(s1+”-----”+s2);
}
static voidshow(String s1,String s2){
   s1 =s2+s1+”Q”; xyzabcQ
    s2 = “W”+s1;   WxyzabcQ
}
a)   abc-----xyz
b)   xyzabcQ-----xyzWabc
c)   xyzabcQ----xyzabcQWabc
d)   xyzQ----Wabc

如题,这道题选择A,主要考察以下两个知识点:
一、字符串属于常量,如果修改 String s1 的值,并不会修改字符串值本身,只会改变s1的引用地址,s1将指向常量池中另一个字符串
二、每个方法中的局部变量只在本方法中有效,方法show()对主方法传入的参数地址值进行修改,仅仅会影响到本方法的局部变量,主方法的 String s1 还是指向常量池中的"abc",只是方法show的s1地址值发生了改变


作者: LiuLiu006    时间: 2016-4-18 23:52
了解...........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2