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;
}

 

posted @ 2015-10-12 17:30  大白虾  阅读(303)  评论(0)    收藏  举报