Java 中的常量池(Constant Pool)是一种内存优化机制,比如字符串常量池:
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1 == s2); // 输出 true,因为指向同一池中的对象
但对于使用 new
创建的字符串:
String s3 = new String("Hello");
System.out.println(s1 == s3); // 输出 false,不同的内存地址
建议:
- 避免频繁使用
new
创建字符串。 - 如果字符串需要频繁拼接,建议使用
StringBuilder
或StringBuffer
,效率更高。