String类的对象是字符串常量,一切看起来改变了String对象的操作,其实只是改变了字符串引用变量所引用的字符串罢了. Java中的字符串存放在一个公共的存储池中,引用指向存储池中相应的位置,编译器可以让字符串共享,即两个不同的引用,可以指向同一个字符串常量,但该字符串的物理存储实际只有一份. 判断两个字符串是否相等,一定要使用equals方法.“==”只能判断两个引用是否指向同一个字符串,在不同的物理存储位置也可以存储相同的字符串. 实际上,只有字符串常量是共享的,而+或substring