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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 487941230 中级黑马   /  2016-7-30 21:25  /  586 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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
求指教原理!!!!!!!!!!!!!!!!!!

5 个回复

倒序浏览
你的 show(s1,s2)  只是改变了show方法里s1,s2的值  并没有传递出来
System.out.println(s1 + "---" + s2);  这一条放show方法里  结果就是xyzabcQ---WxyzabcQ了
回复 使用道具 举报
你吧show()方法的参数改成 x y 就可以理解了s1 s2 还是指向常量区的 "abc"  "xyz"
回复 使用道具 举报
你的方法并没有改变,s1 和s2 所指向的地址.
回复 使用道具 举报
对,可以在String源码API中看看理解的更深。
回复 使用道具 举报
楼上说的好有道理
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马