下面是Java程序运行原理图
首先,我们的源程序是 .java 类型的程序,我们首先通过javac命令编译源程序(Java编译器),这里不是直接编译成机器码,而是得到 .class 类型的字节码。
后面几步都是通过java命令(Java虚拟机)来完成的,先经过类装载器,把内容装载到内存中,然后读取内存中的内容对其进行校验以及翻译,最后转化成二进制格式的机器语言,最后由操作系统平台执行。
正是因为有 .class文件这种中间产物,只要机器上安装有jdk,就可以把class文件翻译成机器语言,所以Java拥有跨平台的特性。
但是Java语言的性能没有C语言高,因为c文件进行翻译之后的exe文件直接就是二进制文件。