机器语言是cpu唯一能够读懂的语言,早期的程序员写机器语言,实际上是直接写机器指令去命令底层硬件如何操作,但是机器语言都是16进制的数字,很不直观而且非常容易出错。之后就有了汇编语言,它是对机器语言用助记符来表示,然后由汇编器去查表,将助记符映射成机器语言。汇编语言和机器语言是一一对应的关系,一条汇编语言对应一条机器语言。
C,C++,Java都是高级语言,它们是对计算机指令的抽象表示,通常一条语句要翻译成好几条汇编指令或机器语言,这个过程就是编译(compile)。因此C语言首先需要先编译成机器语言,然后才能由操作系统(CPU)执行;java语言也需要先编译成字节码文件,然后装载到JVM中,由执行引擎解释成对应操作系统的汇编语言(机器语言),最后由CPU执行。所以如果你想搞清楚java每条语言的底层实现机制,只需要去看对应的汇编代码就可以了(通常一条java代码对应多条汇编指令,如a=a+1,实际上有三条汇编指令:先去工作内存读值,然后加一,最后更新工作内存的值,至于何时刷新到主存,则是有操作系统决定)