java.lang.reflect.Array的源碼,里面全部都是一些native方法,即一些和操作系統打交道的方法,真正的實現方法和原理據說由C/C++在java虛擬機中實現了。
所以java為什么跨平臺,它和底層操作系統的交互全部由java虛擬機實現。一般的高級語言需要在不同平臺運行則需要編譯成不同的
目標代碼,但是java卻不需要,java使用java虛擬機屏蔽了與具體平臺相關的信息,使得java編譯程序生成在java虛擬機下運行的目標代
碼,即字節碼,即可在不同的平臺上不加修改運行。java虛擬機在執行字節碼的時候,把字節碼解釋成具體平臺上的機器指令。
java代碼要編譯成class字節碼文件,需要由JDK的javac進行編譯(至于如何編譯,其中的一些編譯原理可參看sun的The JavaTM Virtual Machine Specification),而jre則負責將class文件裝載(裝載原理略),對其進行安全檢測等,最后由java解釋器解釋為具體平臺上的機器指令。