java语言是一门翻译型语言,它需要编译成class文件在虚拟机里面运行,而java虚拟机是用c和c++写的
(为什么java虚拟机不用java写呢?原因很简单,是先有鸡还是先有蛋的问题,如果java虚拟机是用java写,那它又应该由谁来帮它编译成class文件呢是吧!)
那么java虚拟机是如何执行.class文件的呢??
java虚拟机就是把java代码翻译成c/c++,所以java效率低主要是因为它需要不断的做这种事情。
java利用JNI(java native interface)就是可以利用JNI直接调用c/c++,所以效率高。
![图片](https://i-blog.csdnimg.cn/blog_migrate/7ac22a9dd1667f019313e6492dfba32d.png)
![图片](https://i-blog.csdnimg.cn/blog_migrate/09a4dadb0389b44e277364bd1f6cd1e0.png)