一个非常简单的关于JAVA基础知识的问题(int vs String)
ttt 2002-01-22 11:54:04 int x = 7;
int y = x;
String s = “Hello”;
String t = s;
书上说对像上面这样的赋值,由于x,y是原始类型,所以 x 的值被复制到y,他们是两个独立的变量且其中任何一个的进一步的变化都不对另外一个构成影响;但 String 是非原始类型,这时s 和 t均引用单一的对象。
但我做了个实验:
public class testString
{
public static void main(String[] args)
{
String x1 = "Hello";
String x2 = x1;
System.out.println(x1 + x2);
x2 = "world";
System.out.println(x1 + x2);
}
}
输出结果为:
HelloHello
Helloworld
既然做为非原始类型的 x1 和 x2 ,他们引用同一对象,那为什么 x2 的值改变了,但 x1 没有跟着一起变?