了解部分:
java是一个解释性编译性语言。为什么下边给出结果
cmd中打开java -version
给与的最后一行的有用数据 Hotspot client/server
Hotspot:
jvm的实现,热点探测,将操作频繁代码直接编译成本地机械码。
它包含一个解释器和两个编译器(client server两个,二选一)解释 与编译混合执行模式,默认启动解释执行。编译器:server:这是服务端,他还有 client 端
编译器:JIT
将代码直接翻译成本地代码执行,是JIT编译器,更加准确的说是 HotSpot Compiler;(前提是解释与编译混合执行模式且虚拟机不是刚启 动时)。
解释器:
这使用的是HotSpot的解释引擎,它采用模板解释,将每一条指令直 接翻译成本地代码,而后由硬件直接执行;
混合模式的设计通过以下两点考虑:
-
启动时间:是指,将代码直接编译成本地代码时的时间;
-
稳态性能:是指一条指令被执行的平均速度,一般使用每条指令执行的时间来衡量;
解释与编译的利弊:
- 编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
- 解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
- 编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。
- 解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。
就先到这后续会陆续更新详细内容,欢迎大佬批评指正,一个积极向上的小青年。。。