如题,String类定义一个对象之后,这个对象的值是不可以改变的,而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的值是改变了。这又该怎么解释。 |
|