先简单介绍一下解释器和编译器
解释器:解释器是一种计算机程序,将高级语言转换成机器代码,边编译边执行
编译器:把计算机本地的高级语言编写的程序转换成机器代码,只能提前翻译所有的内容才能执行
解释器是一行一行解释不会产生多余代码 - 执行快
编译器是提前翻译所有内容,会产生多余代码消耗内存 - 启动快
一般执行java程序都是解释执行
但是java里面还有 “即时编译器JIT” 这个小玩意,这个东西就是编译器
为了提升效率,JIT 会把热点代码进行记录,编译成本地代码
所以诞生了 - 混合模式
混合模式特点:
解释器 + 热点代码编译
热点代码斌编译
多次被调用的方法 方法计数器去记录
多次被调用的循环 循环计数器去记录
混合模式的执行过程
代码展示
-Xmixed 混合模式
-Xint 解释模式
-Xcomp 纯编译模式