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解释器解释为具体平台上的机器指令。