c++、java/python语言有什么区别?为什么c++更快?

C++程序的执行过程包括:

.cpp

bash 复制代码
预处理.i、编译.s、汇编.o、链接(可执行文件)、加载(内存)、程序执行(cpu)。
bash 复制代码
预处理:将头内容文件插入当前文件,展开宏,删除注释
编译:将c++源代码 翻译成 汇编语言
汇编:将汇编语言-》二进制机器码
链接:将不同文件整合成一个可执行文件,符号解析,地址分配,重定位,链接静态动态库,生成可执行文件;
静态链接:复制库代码:把需要的库函数代码复制到可执行文件中;生成独立的可执行文件,不依赖外部库文件
动态链接:不复制代码:只在可执行文件中记录需要哪个动态库;
         运行时加载:程序启动时由动态链接器加载所需的库;
重定位:
		地址解析:找到所有未确定地址的实际位置
		代码修正:把占位符地址替换为实际地址
		符号绑定:将符号引用连接到符号定义
bash 复制代码
例:
cpp
// file1.cpp
int global = 100;

// file2.cpp
extern int global;

int main() {
    return global;  // 需要重定位:global的实际地址
}

C++将程序编译成汇编语言最终编译成成机器命令码 ,cpu直接执行机器码,因此高效;
优点是执行起来快,缺点是对环境有依赖;

换个操作系统/CPU架构/字长/库版本,就需要重新编译;
因为:

不同操作系统上,系统调用API不同,汇编语言不兼容,汇编语言格式不同操作系统是不同的,目标文件格式不同,因此需要重新编译;

2、JAVA

java语言执行过程:

bash 复制代码
java源代码-字节码-JVM加载- 解释执行 + JIT编译 - 优化的机器码

Java语言首先将程序翻译成字节码,之后程序去执行字节码,执行过程中再由翻译器将字节码翻译成机器码去执行,因此执行过程较慢,但好处是换个环境也能执行,不依赖环境

python语言是换个环境

相关推荐
皮影w20 小时前
Java SpringAOP入门
java·开发语言
007php00720 小时前
Redis面试题解析:Redis的数据过期策略
java·网络·redis·缓存·面试·职场和发展·php
Jtti20 小时前
IPv4与IPv6共存下的访问问题排查方法
开发语言·php
周杰伦fans20 小时前
CommunityToolkit.Mvvm(又称MVVM Toolkit) 与 MvvmLight 的核心区别
开发语言·c#·.netcore
小青龙emmm20 小时前
2025级C语言第四次周测题解
c语言·开发语言·算法
树在风中摇曳20 小时前
【牛客排序题详解】归并排序 & 快速排序深度解析(含 C 语言完整实现)
c语言·开发语言·算法
minji...20 小时前
算法---模拟/高精度/枚举
数据结构·c++·算法·高精度·模拟·枚举
w***488220 小时前
Spring Boot3.x集成Flowable7.x(一)Spring Boot集成与设计、部署、发起、完成简单流程
java·spring boot·后端
u***13720 小时前
详解tomcat中的jmx监控
java·tomcat
Vic1010120 小时前
Java 序列化与反序列化:深入解析与实践
java·开发语言