关于引用类类型的赋值问题
public class StringTest
{
public static void main(String args[])
{
String s="Hello";
String t=s;
System.out.println("s:" + s + ";t:" + t);
s="Hello World!";
System.out.println("s:" + s + ";t:" + t);
}
}
---------------
编译运行后,输出显示如下:
s:Hello;t:Hello
s:Hello World!;t:Hello
可“s”和“t”为引用String的类类型,为什么在值改变后,它们的值没有同时改变呢?
我感觉好象是系统为它们各自分配了一块内存,就象原始类型一样;这是怎么回事?
而下面这个就是真正的引用类型,难道是“String”这个类特殊吗?
class TestClass
{
int x=1;
}
public class ClassTest
{
public static void main(String args[])
{
TestClass tc1=new TestClass();
TestClass tc2;
tc2=tc1;
System.out.println("tc1.x:" + tc1.x);
System.out.println("tc2.x:" + tc2.x);
tc1.x=10;
System.out.println("tc1.x:" + tc1.x);
System.out.println("tc2.x:" + tc2.x);
}
}
-------------
编译运行显示:
tc1.x:1
tc2.x:1
tc1.x:10
tc2.x:10