我們通過(guò)一個(gè)簡(jiǎn)單例子來(lái)看下怎么查看java 字節(jié)碼
創(chuàng)建一個(gè).java 文件
進(jìn)入cmd進(jìn)入對(duì)應(yīng)目錄進(jìn)行編譯
這樣生成對(duì)應(yīng)的.class文件
javap -v 命令查看字節(jié)碼的詳細(xì)信息
分析
我們代碼中寫(xiě)的是字符串拼接,我們也順便通過(guò)字節(jié)碼看看java底層是怎么進(jìn)行字符串拼接的
從圖中我們可以看出隙疚,其實(shí)jvm 對(duì)字符串拼接進(jìn)行了優(yōu)化盾剩,我們每個(gè) "+=" 都會(huì)生成一個(gè)StringBuilder,然后將后面+ 字符串的操作使用StringBuilder的append 方法進(jìn)行拼接,有很多人說(shuō)在循環(huán)中不要進(jìn)行字符串拼接是因?yàn)闀?huì)new很多String,可能導(dǎo)致堆溢出黎侈,其實(shí)是在循環(huán)每次+=都會(huì)生成一個(gè)StringBuilder馆蠕!