Java中String性能優(yōu)化
不用使用String的構(gòu)造函數(shù),可能的話直接使用字符串。
兩個特例:
1)想把char []轉(zhuǎn)換為一個String,
2) 使用一個大的String對象的substring()方法;
String.equals() 比 String.equalsIgnoreCase()要快;
盡量使用StringBuilder來構(gòu)造一個String,而不是“+”操作符和String.concat() (除非是一個表達式,String s = a + b + c);
StringBuilder是不同步的(not synchronized ),所以要比StringBuffer快;
在String[Buffer|Builder]構(gòu)造函數(shù)中加上容量參數(shù),因為創(chuàng)建一個太小的buffer會降低性能;
String.length()==0比String.equals("")要快。使用Java 6時,String.isEmpty()更快;
調(diào)用String.toString()是沒有意義的;
由于String是不可變的,所以String的方法中,所有返回修改過的String的都是返回了一個新的實例;
String.split(regex)事實上簡單的調(diào)用了Pattern.compile(regex).split(this, limit),且每次compile()都會返回一個新Pattern。所以如果頻繁調(diào)用split的話,最好創(chuàng)建單個Pattern實例并重復(fù)使用來取代split()。
以上就是本文要給大家分享的內(nèi)容了,希望大家能夠喜歡。
請您花一點時間將文章分享給您的朋友或者留下評論。我們將會由衷感謝您的支持!
相關(guān)文章
java線程中synchronized和Lock區(qū)別及介紹
這篇文章主要為大家介紹了java線程中synchronized和Lock區(qū)別及介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-06-06SpringBoot集成Tomcat服務(wù)架構(gòu)配置
這篇文章主要為大家介紹了SpringBoot集成Tomcat服務(wù)架構(gòu)配置,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02SpringBoot單元測試使用@Test沒有run方法的解決方案
這篇文章主要介紹了SpringBoot單元測試使用@Test沒有run方法的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01idea一招搞定同步所有配置(導(dǎo)入或?qū)С鏊信渲?
使用intellij idea很長一段時間,軟件相關(guān)的配置也都按照自己習慣的設(shè)置好,如果需要重裝軟件,還得需要重新設(shè)置,本文就詳細的介紹了idea 同步所有配置,感興趣的可以了解一下2021-07-07