java m4a文件拼接_面试官:为啥不提倡字符串拼接?看阿里java开发手册怎么说
阿里規(guī)約
先來(lái)看阿里java開(kāi)發(fā)手冊(cè)的第22條,循環(huán)體內(nèi),字符串的連接方式,使用 StringBuilder 的 append 方法進(jìn)行擴(kuò)展。
說(shuō)明:下例中,反編譯出的字節(jié)碼文件顯示每次循環(huán)都會(huì) new 出一個(gè) StringBuilder 對(duì)象,然后進(jìn)行 append操作,最后通過(guò) toString 方法返回 String 對(duì)象,造成內(nèi)存資源浪費(fèi)。
反例:
String str = "start";for (int i = 0; i < 100; i++) { str = str + "hello"; }反編譯
我么先寫(xiě)一個(gè)類測(cè)試一下是否是這樣的呢?眼見(jiàn)為實(shí),耳聽(tīng)為虛,Let`s go。
反編譯 javap -c Test.class ,接下來(lái)看結(jié)果,從反編譯的結(jié)果看循環(huán)體內(nèi)每拼接一次就會(huì)去new一個(gè)StringBuilder。
那么,m2方法的字節(jié)碼呢?我們可以看到是直接調(diào)用的append方法,而沒(méi)有每循環(huán)一次new一個(gè)StringBuilder對(duì)象了。
總結(jié)
1、字符串拼接,+號(hào)和StringBuilder是相等的,但是在循環(huán)體內(nèi)使用 StringBuilder 的 append 方法效率更優(yōu),尤其是數(shù)據(jù)量很大的情況下。
2、使用字節(jié)碼的方式可以很好查看代碼底層的執(zhí)行,從而可以看出哪些實(shí)現(xiàn)效率高,哪些實(shí)現(xiàn)效率低;可以更好的對(duì)我們的代碼做優(yōu)化。讓程序執(zhí)行效率更高。
關(guān)注并私信我獲取最新【阿里java開(kāi)發(fā)手冊(cè)泰山版】
總結(jié)
以上是生活随笔為你收集整理的java m4a文件拼接_面试官:为啥不提倡字符串拼接?看阿里java开发手册怎么说的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 华为手机怎么看图片属性_华为手机音量小怎
- 下一篇: 影响线型缩聚物分子量的因素_运城专业超高