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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

tring类定义一个对象之后,这个对象的值是不可以改变的,而Stringbuffer类定义一个对象之后,这个对象的值是可以改变的。这个要怎么理解。下面是我写的一段代码

    public class StringDemo {
    //        public static void main(String[] args) {
    //        String s1="fiusiua";
    //        String s2="iurguer";
    //        s1=s1+s2;
    //        s2=s1+s2;
    //        System.out.println(s1);
    //        System.out.println(s2);
    //        }//String 在同一方法中定义String对象的值是可变的,但是如果调用下一个方法后
            //在下一方法中改变String对象的值,在这个方法中String对象的值是无法改变的。
            public static void main(String[] args){
                    String s1 = "abc";
                    String s2 = "xyz";
                    show(s1,s2);
                    System.out.println(s1+"---------"+s2);
                    }
            static void show(String s1,String s2){
             s1 = s2+s1+"Q";
         s2 = "W"+s1;
         System.out.println(s1);
         System.out.println(s2);

(复制代码)
代码中我在show方法中打印了s1和s2,发现这里的s1和s2的值是改变了。这又该怎么解释。

1 个回复

倒序浏览
你打印的事show()方法中的s1和s2吧。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马