//字符串字面量的值虽然是共享的,但是和Static意义不同
public class PersonTest
{
public static void main(String[] args)
{
Person p1=new Person(“Tom”);
Person p2=new Person(“Tom”);
/*
这里面p1.name 和p2.name用的是一个地址值,存储在常量值里面
*/
sout(p1==p2);//地址值相同,指向的字符串值也相同
sout(p1.name==p2.name); //p1.name和p2.name都是Tom,都是通过字面量来取值,当值相同时,就可以共享(包括地址值也是相同)
p1.name=“Jerry”;
sout(p1.name==p2.name)
{
this.name=name;
}
e); //此时p2.name是Tom,p1.name是Jerry.因为String字符串具有不可变性,当值变掉的时候就无法共享
}
}
class Person {
String name;
public Person(String name)
{
this.name=name;
}
}