String是常量,指的是String的实例对象所引用的哪个字符串是不可改变的。
String str = "abc";
str = "bcd"
System.out.println(str);
输出的是bcd
这说明了可以把任何一个字符串常量赋给String类型的引用变量,我们说String是不可变类,实际上就是说String的对象(例如str)所指向的那个字符串是不可变的,str可以指向任何字符串常量。而字符串常量,如:“abc”,“bcd”,他们都保存在常量池中,它们是不可能改变的,实际上,java也没有提供能改变这以常量的方法(我们没法获取这个常量的地址,因为java没有提供“指针"这一个神器,呵呵)。一旦创建了,它们的生存周期就是整个类,除非没有任何引用指向某个字符串常量变成垃圾,等待被回收。 |