java的运行过程实质?
源代码被编译然后被解释成机器语言
源代码--->编译器--->字节码--->解释器---机器码
.java--->Compiler--->.class--->Interpreter---Machine code
生米--->锅--->熟饭--->筷子---品尝
Compiler+Interpreter构成JVM虚拟机的基本功能
静下来分析可以发现java的整个运行过程只是把生米用锅煮成熟饭最后用筷子吃
源代码就是生米(没有正常人会把生米拿来吃吧?)
编译器就是锅(有各种型号的锅,但目的都一样:加工食材)
字节码就是熟饭(熟饭还是要用工具来进食的)
解释器就是筷子(就像有些人只食口前饭)
机器码就是品尝过程了
整个过程JVM负责2次转译,可以看出效率并不高,但是正是因为他的存在才让JAVA可以一次编写,随处可用
提一个不专业的疑问:
可否将JVM看成给每个平台都是定制的,而程序是一个相对单一的,这一点貌似在hibernate框架的多对多映
射中有相似处