1. new String() 对象不放在 string pool里, 相同值的new String对象是不同的对象。 string 常量和 intern 方法生成的对象会在 string pool,不同引用指向同一个对象。
2. string常量在classload时生成,一般不会被GC。
3. 临时变量可以用new string(), 反复使用的场景可以用intern生成的对象。
4. String是final,immutable,String的substring,concat,replace,toLowercase等方法都会生成新string,java用StringBuilder做了优化。