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