/*
java中的传值,传址
String为不可变类,当String中的内容改变时,其实是,它指向的对象发生了发生了改变,
原来的对象依然存在于内存中,并没有被改变。
StringBuffer为可变类,当StringBuffer中的内容改变时,其对象的内容发生改变。
*/
class TestTransport1
{
public static void change(StringBuffer ss1, int n)
{
ss1.append(" hello");
n = 9;
}
public static void main(String[] args)
{
StringBuffer s = new StringBuffer("world");
int i = 0;
change(s, i);
System.out.println(s);
System.out.println(i);
}
}
/*
结果:
world hello
0
StringBuffer中的内容被改变。
*/
class TestTransport2
{
public static void change(String ss1, int n)
{
ss1 = "hello";
n = 9;
}
public static void main(String[] args)
{
String s = new String("world");
int i = 0;
change(s, i);
System.out.println(s);
System.out.println(i);
}
}
/*
结果:
world
0
String中的内容没有被改变。
*/
java:可变类StringBuffer与不可变类String
最新推荐文章于 2022-04-14 20:00:57 发布