JVM 调优实战--JVM字节码
目錄
通過javap命令查看class文件的字節(jié)碼內(nèi)容
常量池
?描述符
字段描述符
方法描述符
解讀方法字節(jié)碼
圖解
研究i++與++i的不同
查看字節(jié)碼
對比
分析字符串拼接孰優(yōu)孰劣
小結(jié)
?
通過javap命令查看class文件的字節(jié)碼內(nèi)容
通過javap命令查看字節(jié)碼并將內(nèi)容寫入到Test1.txt文件中的命令:
javap -v Test1.class > Test.txt
打開Test1.txt文件:
常量池
描述符
字段描述符
方法描述符
解讀方法字節(jié)碼
圖解
研究i++與++i的不同
查看字節(jié)碼
對比
分析字符串拼接孰優(yōu)孰劣
編寫測試案例:
m1方法的執(zhí)行過程中,jvm底層會new StringBuilder()進行處理;
結(jié)論:m1方法中雖然在代碼中使用的是+號拼接,但是在字節(jié)碼中也被編譯成了StringBuilder的方式。因此可以得出結(jié)論:
字符串拼接,+號和StringBuilder是相等的,效率一樣。
再來看一個案例:
m1方法,底層JVM的執(zhí)行過程是循環(huán)多少次就new多少個StringBuilder對象:
goto語句,比如goto 5,跳轉(zhuǎn)到第5行繼續(xù)執(zhí)行。
m2方法,JVM的層只new了一個StringBuilder對象:
結(jié)論:m1的效率明顯低于m2方法。
小結(jié)
使用字節(jié)碼的方式可以很好地查看代碼底層的執(zhí)行,從而可以看出哪些實現(xiàn)效率高,哪些實現(xiàn)效率低。可以更好地對我們的代碼進行優(yōu)化,讓程序執(zhí)行效率更高。
總結(jié)
以上是生活随笔為你收集整理的JVM 调优实战--JVM字节码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM 调优实战--常用JVM命令:jp
- 下一篇: JVM 调优实战--常用命令参数及PS收