String字符串性能优化的几种方案(20)

String s1=new String(\"ab\"); s.intern();

jdk1.6:若字符串常量池里没有“ab\" , 则会在常量池里存放一个“ab\"副本 , 该副本地址与堆中的”ab\"地址不相等;

jdk1.7:若字符串常量池里没有“ab\" , 会将“ab”的对象引用放到字符串常量池里 , 该引用地址与堆中”ab\"的地址相同;

jdk1.8:若字符串常量池中包含与当前对象相当的字符串 , 将返回常量池里的字符串;若不存在 , 则将该字符串存放进常量池里 , 并返回字符串的引用 。

3.如何使用字符串的分割方法?

在简单进行字符串分割时 , 可以用indexOf替代split , 因为split的性能不够稳定 , 故针对简单的字符串分割 , 可优先使用indexOf代替;

推荐阅读