學習JAVA該如何將將底層知識學好?
Java平臺無關性如何實現?首先我們看一張圖片:
Java平臺無關性.png(1)Java源碼首先要被編譯成字節碼,接著Java虛擬機通過編譯好的.class文件進行解析,加載進內存,并執行相應的機器指令,。不同平臺的指令集不同,如Linux、Win、IOS,Java虛擬機可以對.class文件解析成對應不同平臺(操作系統)的機器指令,并加載進內存執行,這樣一來,Java便實現一次編譯(運行時無需再進行重新編譯),到處運行,即跨平臺運行.class文件。
對java源代碼進行編譯編譯后多出了.class文件(2)我們可以在IDEA工具中執行命令行窗口,來查看.class字節碼,通過命令javap -c來查看字節碼
javap -c 可以反編譯先進入src文件這就是.class文件的字節碼,對應一些機器指令,但是這里并不是真正計算機執行的機器指令為什么JVM不直接將源碼解析成機器碼去執行?-準備工作:無需每次執行時都進行各種檢查。-兼容性:也可以將別的語言解析成字節碼,如再由JVM解析執行。