A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liuchenguangqnm 中级黑马   /  2016-4-18 23:48  /  765 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面程序的运行结果是什么(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地址值发生了改变

评分

参与人数 1黑马币 +4 收起 理由
zhangshuangle + 4 淡定

查看全部评分

1 个回复

倒序浏览
了解...........
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马