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