黑马程序员技术交流社区

标题: 求大神指教!!!! [打印本页]

作者: 487941230    时间: 2016-7-30 21:25
标题: 求大神指教!!!!
public class Demo {
         public static void main(String[] args){
                        String s1 = "abc";
                        String s2 = "xyz";
                show(s1,s2);
                System.out.println(s1+"---"+s2);
                String vv = "";
               System.out.println("".length());
        }
        static void show(String s1,String s2){
                 s1 = s2+s1+"Q"; //XYZABCQ
             s2 = "W"+s1;   //WABC

为何打印的结果为:abc---xyz
求指教原理!!!!!!!!!!!!!!!!!!
作者: 骚动的石头    时间: 2016-7-30 21:54
你的 show(s1,s2)  只是改变了show方法里s1,s2的值  并没有传递出来
System.out.println(s1 + "---" + s2);  这一条放show方法里  结果就是xyzabcQ---WxyzabcQ了

作者: 牧风    时间: 2016-7-30 22:07
你吧show()方法的参数改成 x y 就可以理解了s1 s2 还是指向常量区的 "abc"  "xyz"
作者: 黑马YJM    时间: 2016-7-30 23:00
你的方法并没有改变,s1 和s2 所指向的地址.
作者: lynch123    时间: 2016-7-30 23:14
对,可以在String源码API中看看理解的更深。
作者: walkk    时间: 2016-7-31 00:12
楼上说的好有道理




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