我发现JRE / JVM不是使用Java构建的。 Sun JRE是用C构建的,IBM JRE是用SmallTalk(第一面向对象语言)构建的。请帮助我回答。 提前谢谢。
答案 0 :(得分:1)
已经有编译器将C转换为机器代码。将Java转换为机器代码的编译器直到很久以后才出现,并且仍然没有那么强大或优化。
答案 1 :(得分:1)
当你引导一种语言时,你必须从某个地方开始。许多语言(Python,Ruby等)都是从基于C的实现开始的 - 可能是因为C提供了有效的实现以及对底层OS API调用的轻松访问。
答案 2 :(得分:0)
AFAIK,我认为它主要归结为效率和便携性。尽管使用Java编写JRE / JVM可能是可移植的,但由于有一些转换需要获得机器级指令(例如Java字节码 - >平台指令 - >机器指令),因此效率不高。在ANSI C中编写程序的美妙之处在于程序通常非常快,代码可以在大多数平台上编译。