c语言,c++,java和python这些语言有何区别?编译型编程语言编译语言,解释型编程语言解释型语言

JVM

JVM是JavaVirtualMachine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

c语言,c++,java和python这些语言有何区别?

在这里插入图片描述
通过之前对各个语言的了解,我们再来看到这种图的时候会更加清楚层级问题,让我给这个层级排序的话,我会这样排序(不服来辩):程序性能排名:汇编>系统级语言>应用级语言>脚本级语言程序可读性:脚本级语言>应用级语言>系统级语言>汇编最后最后了,我再为大家介绍一下各个层级的意思就结束硬件层级:就是CPU、内存、显卡等,不属于软件范畴汇编层级:可读性差,但是现在有编译器哈,所以市场汇编语言的工程师需求变量是很少的。高级语言需求量增大了。因为高级语言很好读;系统层级:Windows、Linux、Mac、OS、Andriod、IOS等等。就是电脑软件都是跑在操作系统上的。应用层级:是更加偏重软件的程序的执行流程和功能的。开发起来体量非常大。脚本层级:这里面不涉及楼主上面说的四种语言,我就是略说一下。脚本级语言的代码很直给的,代码速度快。但是虽然可读性强,但是编译器把脚本语言翻译成汇编语言的成本很大。

c语言,c++,java和python这些语言有何区别?

语言作为经典的面向过程的静态语言,可以说老一代程序猿几乎都接触过C语言,一般来说,C语言编写的代码需要经过编译、链接最后形成可执行文件,这些行为有编译器完成,开发者只需要写代码即可。而C++作为一种面向对象语言,全面兼容了C语言,但引入了类、多态、RTTI、RAII等机制,相对于来说,从源码到可执行文件的过程和C语言几乎一样。学习掌握要比C语言难度大,精通的话,更是有难度,如果想了解如何学习C++及提高的话题,可以参考我的另一篇文章:

而Java语言作为面向对象高级语言,也有类、多态等概念,生态非常强大,一般来说,Java代码需要经过javac编译成字节码文件,也就是.class文件,这个文件可以在不同的平台上直接运行,需要安装对应平台的jvm。Python作为一种解释性的胶水语言,没有针对机器代码的编译,每一条语句的执行都是直接对源代码或者中间代码进行解释运行。而少了这个编译的过程,使得解释型语言运行相对较慢。如果想了解更多python学习方面的信息,可以参考我的另一篇文章:

从用途看c 主要用来做嵌入式应用 、算法实现、 服务开发等。c++主要做图形图像处理、服务开发等。java主要用在服务接口开发,大多数mis系统的后台接口都有java开发。python用途相对还是广泛的,像网络爬虫、数据分析、自动化运维、人工智能等。从跨平台看c,c++属于代码级别的跨平台,必须针对不同的平台进行编译。而java, python直接所谓的编译得到字节码文件(.class, .pyc), 然后可以在任意平台上运行,当然这个平台上必须安装对于的jvm, 或pvm。

在这里插入图片描述

这四者都是通用编程语言:

python: 快速开发应用程序
java: 健壮的大型软件
C++: 需求效率的软件
C: 操作系统及驱动

C、Python、C++、Java的对比 详细介绍:
https://blog.csdn.net/qq_35705269/article/details/74085121
https://blog.csdn.net/weixin_50930712/article/details/122726234

编译型编程语言编译语言,解释型编程语言解释型语言

在这里插入图片描述

python解释器安装:https://blog.csdn.net/qianshuiliyu/article/details/122490937https://blog.csdn.net/qianshuiliyu/article/details/122490937
python为什么不用编译
和传统的编译型语言不同的是,python是一种解释型的脚本语言。python的代码在运行时,由解释器当做文本文件读取后一行一行解释翻译并运行,所以python不需要进行编译,当然这也导致了python运行效率没有传统的C/C++等编译型语言高。

1、编译型编程语言编译语言(英语:Compiled language)是一种编程语言类型,通过编译器来实现。它不像解释型语言一样,由解释器将代码一句一句执行,而是以编译器,先将代码编译为机器代码,再加以执行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。以C/C++ Go 等
2、解释型编程语言解释型语言(英语:Interpreted language)是一种编程语言类型。这种类型的编程语言,会将代码一句一句直接执行,不需要像编译语言(Compiled language)一样,经过编译器先行编译为机器代码,之后再执行。这种编程语言需要利用解释器,在执行期,动态将代码逐句解释(interpret)为机器代码,或是已经预先编译为机器代码的子程序,之后再执行。理论上,任何编程语言都可以是编译式,或解释型的。它们之间的区别,仅与程序的应用有关。许多编程语言同时采用编译器与解释器来实现,其中包括Lisp,Pascal,BASIC 与 Python。JAVA及C#采用混合方式,先将代码编译为字节码,在执行时再进行解释。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Java到底是编译型语言还是解释型语言

由Java的代码执行过程可知 ,一个Java 代码的执行过程是由 . Java–>. class–>对应平台机器码 ; . Java–>. class是由 Javac 编译,这个过程符合编译型语言的特点(一次性编译,注意 并未编译为实际平台的机器码,)而. class–>对应平台机器码 的这一过程 是由Java解释执行 (逐行解释为特定平台机器码)这一过程符合解释语言的特点 ;所以说 Java既是编程语言 ,又是解释语言。
在这里插入图片描述
(1)java语言的编译–>解释—>执行过程
在这里插入图片描述
(2)java的虚拟机
在这里插入图片描述
定义:
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!
区别:
编译型语言,执行速度快、效率高;依靠编译器、跨平台性差些。
解释型语言,执行速度慢、效率低;依靠解释器、跨平台性好。

个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型,但是假如非要归类的话,从概念上的定义,恐怕java应该归到解释型的语言中。

猜你喜欢

转载自blog.csdn.net/qq_15821487/article/details/126124078