美文网首页
java是怎么运行的

java是怎么运行的

作者: 杨殿生 | 来源:发表于2018-10-25 14:25 被阅读0次

java和c++的区别

c++直接编译成机器码可直接运行在机器上
java需要先编译成class文件,需要提供jre环境,在虚拟机上才能运行

java为什么要跑在虚拟机上

在虚拟机上运行可以屏蔽对底层的兼容,一处编译多处运行。虚拟机也提供了内存的管理功能GC,和安全的检测功能

java虚拟机怎样运行字节码

虚拟机内部分为
线程共享的方法区,堆
线程不共享的栈,本地方法栈,程序计数器

从虚拟机来看
虚拟机将class文件加载到方法区,在java运行过程当中执行方法,就会从方法区中取,虚拟机会为当前线程的栈中生成栈帧,栈帧负责存储局部变量和字节码操作数,退出当前方法栈帧就会退出

从硬件来看
机器不能直接执行class文件,需要虚拟机将class文件翻译成机器码才能执行
1,解释执行
逐条将字节码翻译成机器码并执行,无需等待
2,JIT即时编译
将一个方法所有的字节码都编译成机器码执行,执行速度快

java虚拟机的运行效率

虚拟机采用的是混合模式,综合了解释执行和即时编译的有点,因为即时编译复合二八定律,即百分之二十的代码占据了百分之八十的运算律,所以对于大部分不常用的代码我们使用解释执行,小部分常用代码使用即时编译提高执行效率
有些使用即时编译甚至好过c++的静态编译,因为可以根据运行信息去进行执行的优化

相关文章

网友评论

      本文标题:java是怎么运行的

      本文链接:https://www.haomeiwen.com/subject/nhuqtqtx.html