如何在dos命令中檢視class的jvm檔案
阿新 • • 發佈:2019-02-18
前幾天我看到這樣的一個問題,當時不是很清楚它的意思,所以執行一下看一下結果,
結果知道了以後想要看一下它是如何執行的,所以想要看一下編譯的class檔案,所以就有另外一下的操作
剛開始的時候直接查看了編譯好的class檔案,但是格式是真的看不懂,改了幾種編碼格式都難以閱讀,然後我聽 說可以在dos中檢視他的執行過程,這邊就試驗了一下;
這裡是輸出的執行的詳細內容javap -verbose className
然後需要僅僅是簡單的過程的話可以使用javap - c className
然後我們可以從這個編譯的過程中可以看出String的拼接是用了StringBuider的,因為String是final型別的所以new了一個StringBuider.這邊輸出比較的結果是地址,所以說這兩個不相等
然後看加了final的String,可以看出編譯的時候並沒有new一個StringBuilder,只是在字串常量池裡面的字串拼接
還有一些常用命令給你們用參考
命令選項 -help 輸出 javap 的幫助資訊。 -l 輸出行及區域性變量表。 -b 確保與 JDK 1.1 javap 的向後相容性。 -public 只顯示 public 類及成員。 -protected 只顯示 protected 和 public 類及成員。 -package 只顯示包、protected 和 public 類及成員。這是預設設定。 -private 顯示所有類和成員。
-extdirs[dirs] 覆蓋搜尋安裝方式擴充套件的位置。擴充套件的預設位置是 jrelibext。
希望可以提出問題和建議,我們一起進步;