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的值是改变了。这又该怎么解释。 |
|