java解释执行和编译执行(即时编译)
我们都知道java是一门面向对象的语言,我们编写的java源代码,会被javac转换成字节码文件(.class),在运行时,java虚拟机内嵌的解释器将字节码文件转换成机器码,没解释一行,运行一行,这样的执行方式称为解释执行;然而java并不只有这一种执行方式,jvm中还提供了JIT(编译器),编辑器能够在运行时将热点代码转换成机器码,这种就是即时编译;热点代码:所谓的热点代码,就是虚拟机在..
·
我们都知道java是一门面向对象的语言,我们编写的java源代码,会被javac转换成字节码文件(.class),在运行时,java虚拟机内嵌的解释器将字节码文件转换成机器码,没解释一行,运行一行,这样的执行方式称为解释执行;然而java并不只有这一种执行方式,jvm中还提供了JIT(编译器),编辑器能够在运行时将热点代码转换成机器码,这种就是即时编译;
热点代码:所谓的热点代码,就是虚拟机在运行的时候发现某个方法或某个代码块运行特别频繁,这个方法或代码块里的代码就是热点代码;
解释执行
优点:
1.解释执行不依赖于平台,因为编译器会根据不同的平台进行解析。
2.开发速度快,出现严重BUG的几率小。
缺点:
1.解析需要时间,不生成目标程序而是一句一句的执行的方式会造成计算机资源的浪费,即执行效率低。
2.解释语言还有个致命伤—源代码必须交给用户。
编译执行
优点:
1.相比解释执行编译执行效率高,占用资源小,适合复杂程序。
更多推荐



所有评论(0)