编程语言的解析与编译

本文探讨了Python动态解析与Java编译的区别,通过比喻解析器与JVM,揭示了为何Java执行更快。Python的动态特性与Java的类型检查机制对比,以及Python底层的加法运算示例,解析了两者性能差异的原因。
摘要由CSDN通过智能技术生成

什么是解析?

说到解析就要用python来举例,因为python就是一门动态解释型的编程语言,当开发者在编写python代码保存后,就会得到一个以“.py”为扩展名的文本文件,若要运行“.py”文件就要用python解析器将py文件逐行解析成能让计算机执行的机器代码。

什么是编译?

编译就是将一种源代码转换成另一种源代码,例如将'*.java'文件编译生成'.class',想要执行class文件就要jvm加载再次编译或解析成能让计算机执行的机器代码。

 

这也是为什么 python执行快,而java执行时需要等待一会;将python解析器比作自行车,而jvm就比作地铁,进地铁站坐地铁需要等待而自行车可以随骑。

运行同一段功能相同的代码,java为何要比python快呢?是因为jvm比python解析器强吗?是,但又不完全,还因为python是一种动态解析的弱语言,它不像java那样定义变量时需要指定数据类型;举个例子,在python中做一次整数加法和在java中做一次整数加法是完全不同的,当你在java中做整数加法时,判断数据类型和是否超出范围,特别的:当byte、char、short三种类型的变量做运算时,结果为int型;而python做加法运就需要各种校验了,下图就是python底层的加法校验

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值