本篇要講解一個算是深度文。
(其他大神,請略過)
這是原始碼
這是編譯後的class檔案內部
我們把這16進位轉換成字串,方便觀察。
下圖是轉碼後的資訊。
有些字串很明顯,調用了四大基本檔案
Object.java
System.java
PrintStream
String.java
這四大檔案來說,其實以這篇文章的原始碼來說,String.java只是輔助而已,不算在內。
我們來看一下這四大檔案的過程。
因為Object只是讓Demo這個類別名稱可以釋放出檔案。
所以本檔案就不太需要詳細說明。
首先,先看System.java 他調用了PrintStream out這個
再來,我們可以追查到這行。下圖。
checkIO()函數先出現,setOut0(out)後出現
下圖就是checkIO()的方法method
至於裡面是什麼現在對java的新手還並不是太重要。
知道是逆向觀察調用的東西就好。
再來,private static mative void setOut0那行也就是他的方法。
System.out 探討到這邊先結束,繼續向println前進。
觀察一下另外一個檔案。
下圖很明顯,PrintStream.java 裡面調用了println(String x)
參數
至於String.java
這邊的valueOf只是輔助而已,對於本篇的程式碼,沒有太大影響。
Java的字串調用,就講解到這邊為止。
有興趣,請自己慢慢分析。
有著作權,請勿任意轉載。若要分享,請註明本篇來源。
沒有留言:
張貼留言