为什么python叫解释器,而java叫虚拟机

从执行上看Java文件通过java.exe编译生成javac的字节码文件,而java的字节码处理方式可以分为JIT(just in time,立即编译执行)和解释执行,JIT将热点代码编译缓存起来,执行速度更快,解释执行会逐条执行字节码指令。
python的.py文件在python.exe采用编译成pythoncodeobject对象(不是pyc文件,pyc文件是pythoncodeobject的磁盘存储形式 )并由python.exe一条一条地执行每一条指令,不会生成pyc文件,而import .py模块后才会生成.pyc文件当然pyc的执行速度比py快
python由解释器生成中间代码并解释执行,而java要编译成javac,再由JVM解释和编译,所以java虚拟机是包括解释器的并且Java运行速度快于python。相比之下,Python更像个玩具,JAVA才是工具。
从类型上看
python是动态类型,只能在运行时检查类型错误,而java是静态类型,在编译时就可以检查出类型错误。

编译器,解释器区别
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.

我认为解释器和虚拟机没什么区别,甚至于有人将python解释解释器也可以叫做PVM。

发布了4 篇原创文章 · 获赞 3 · 访问量 101

猜你喜欢

转载自blog.csdn.net/Niubilityone/article/details/105607543