捋一捋一些基本的概念。
有些语言编写的代码是由操作系统去编译,链接,运行 等等等,这些动作是跟操作系统还有硬件是耦合的,也就是说换个硬件,换个操作系统,之前写的代码就挂了,得再写一版本。
后来,换个思路,不这么搞,把这种耦合断掉,代码通过某种平台给编译成中间语言,再把这个中间语言根据你在哪种系统,哪种硬件下运行,再转换成对应的机器语言由操作系统去执行。
java里面这个平台就是JVM, 代码被JVM编译成文本文件,这个文件人看不懂,操作系统看不懂,只有JVM自己看的懂,随后他把中间语言转换成机器语言。
同理.NET里这个平台就是CLR,代码编译成IL,最后转换成机器码。
这些都只是大概意思上的理解,有不准确的地方请看到的同志自己把握。
C#哭着喊着比JAVA先进,你比人先进你干嘛模仿人家?