当前位置: 首页 > news >正文

2026/4/18

2026/4/18

Python、C++、Java 核心区别(带程序实例+知识点复习)

下面以条目化+可运行代码实例形式,清晰对比三者核心差异,同时帮你快速复习 C++/Java 语法、学习 Python 语法。

一、语法简洁度:Python 极简,C++/Java 繁琐

  1. 核心特点
  • Python:无分号、无大括号、无强制类型声明,靠缩进区分代码块,语法极简。
  • C++/Java:必须写分号、大括号、类型声明,语法严格冗余。
  1. 实例:输出"Hello World"

python

Python(1行搞定)

print("Hello World")

cpp
// C++(必须头文件、主函数、分号、大括号)

include

using namespace std;
int main() {
cout << "Hello World" << endl;
return 0;
}

java
// Java(必须类、主方法、分号、大括号)
public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

二、变量定义:Python 动态类型,C++/Java 静态类型

  1. 核心特点
  • Python:动态类型,变量无需声明类型,类型随值自动改变。
  • C++/Java:静态类型,必须先声明变量类型,且类型不可随意修改。
  1. 实例:变量赋值与类型修改

python

Python:无需声明类型,直接赋值,类型可随意变

a = 10 # 整数
a = "Python" # 直接改成字符串,无报错
print(a)

cpp
// C++:必须声明类型,类型不可改

include

using namespace std;
int main() {
int a = 10; // 声明为整数,只能存整数
// a = "C++"; // 报错:类型不匹配
cout << a << endl;
return 0;
}

java
// Java:必须声明类型,类型不可改
public class Test {
public static void main(String[] args) {
int a = 10; // 声明为整数
// a = "Java"; // 报错:类型不匹配
System.out.println(a);
}
}

三、代码块标识:Python 靠缩进,C++/Java 靠大括号

  1. 核心特点
  • Python:缩进(4个空格) 划分代码块,缩进错误直接报错。
  • C++/Java: {}  大括号划分代码块,缩进仅为美观,不影响执行。
  1. 实例:if 判断代码块

python

Python:缩进决定代码归属,严格对齐

score = 85
if score >= 60:
print("及格") # 属于if块
print("继续努力") # 同缩进,属于if块
print("程序结束") # 不缩进,不属于if块

cpp
// C++:大括号决定代码块,缩进无关

include

using namespace std;
int main() {
int score = 85;
if (score >= 60) {
cout << "及格" << endl;
cout << "继续努力" << endl;
}
cout << "程序结束" << endl;
return 0;
}

java
// Java:大括号决定代码块,缩进无关
public class Test {
public static void main(String[] args) {
int score = 85;
if (score >= 60) {
System.out.println("及格");
System.out.println("继续努力");
}
System.out.println("程序结束");
}
}

四、内存管理:Python 自动回收,C++/Java 手动/自动

  1. 核心特点
  • Python:自动垃圾回收,无需手动管理内存,系统自动释放无用变量。
  • C++:手动管理内存, new  申请内存必须  delete  释放,否则内存泄漏。
  • Java:自动垃圾回收(GC),无需手动释放,比 C++ 省心,比 Python 可控。
  1. 实例:对象内存管理

python

Python:自动创建+自动回收,无需手动释放

class Student:
def init(self, name):
self.name = name

stu = Student("小明") # 自动分配内存
print(stu.name)

无需手动释放,系统自动回收

cpp
// C++:手动new申请,必须delete释放

include

include

using namespace std;

class Student {
public:
string name;
Student(string n) : name(n) {}
};

int main() {
Student* stu = new Student("小明"); // 手动申请内存
cout << stu->name << endl;
delete stu; // 必须手动释放,否则内存泄漏
return 0;
}

java
// Java