java程序优化之字符串优化
字符串优化处理
1、常量池的优化
String str1 = "abcdef"; String str2 = "abcdef"; String str3 = new String(""); System.out.println(str1==str2);//返回true System.out.println(str1==str3);//返回false System.out.println(str1==str3.intern());//返回true
当两个String对象拥有相同的值时,它们只引用常量池中的同一拷贝
2、StringBuilder、StringBuffer
StringBuffer是线程安全的,故在非同步的情况下,使用StringBuider效率更高
3、查找单个字符的话,用charat()代替startswith()
例子: public class test{ private void method(string s) { if (s.startswith("a")) { // ... } } } 将'startswith()' 替换成'charat()'. public class test{ private void method(string s) { if ('a' == s.charat(0)) { // ... } } }
4、在字符串相加的时候,如果该字符串只有一个字符的话,使用 ' ' 代替 " "
例子: public class str { public void method(string s) { string string = s + "d" string = "abc" + "d" } } 将一个字符的字符串替换成' ' public class str { public void method(string s) { string string = s + 'd' string = "abc" + 'd' } }
5、StringBuilder/StringBuffer,初始化时,设置容量参数,提高效率
例子: public class test{ void method () { stringbuffer buffer = new stringbuffer(); buffer.append ("test"); } } 为stringbuffer提供初始化大小。 public class test{ void method () { stringbuffer buffer = new stringbuffer(max); buffer.append ("test"); } private final int max = 1000; }

浙公网安备 33010602011771号