不可变类:类的对象一旦被创建出来,在其整个声明周期中,其成员变量就不能被修改了。
所有的基本类型的包装类都是不可变类,例如Integer、Float等,此外String也是不可变类。
存在一个字符串常量池,当创建一个String对象,假如此字符串已经存在于常量池中,则不会创建一个新的对象,而是引用已经存在的对象。
注意:下面的代码在编译器就转换为“abc”,只创建了一个对象“abc”放在字符串常量池中(如果常量池中没有“abc”的话)
String str = "a" + "b" + "c";
下面的代码创建一个或两个对象,若常量池中没有“abc”就创建了一个,反之两个
String str = new String("abc");