Đây là một số khác biệt cơ bản giữa C++, Java và Python. Trước tiên so sánh C++ và Java, sau đó Java và Python.
| Chủ đề | C++ | Java |
|---|---|---|
| Quản lý bộ nhớ | Dùng con trỏ, struct, union, tham chiếu | Không hỗ trợ con trỏ. Hỗ trợ tham chiếu. Cũng hỗ trợ Thread, interface |
| Thư viện | Thư viện chức năng cấp thấp | Thư viện rộng, nhiều chức năng |
| Kế thừa đa dạng | Hỗ trợ đa kế thừa bằng lớp thường | Hỗ trợ đa kế thừa chỉ bằng interface (lớp trừu tượng thuần túy) |
| Nạp chồng toán tử | Hỗ trợ nạp chồng toán tử | Không hỗ trợ nạp chồng toán tử |
| Xử lý chương trình | Hàm và biến có thể ở ngoài lớp | Hàm, biến chỉ ở trong lớp hoặc package |
| Khả năng di động | Mã phụ thuộc nền tảng. Cần biên dịch lại | Độc lập nền tảng. Bản biên dịch chạy trên nền tảng nào có JVM |
| Hỗ trợ Thread | Không có thread built-in | Có thread built-in |
Giờ so sánh Java và Python.
| Chủ đề | Java | Python |
|---|---|---|
| Quy trình biên dịch | Mã được biên dịch bằng compiler | Mã được thông dịch bằng Python interpreter |
| Độ dài code | Nhiều dòng code hơn Python | Ít dòng code hơn Java |
| Cú pháp | Mỗi block tách bằng dấu ngoặc nhọn, mỗi dòng kết thúc bằng chấm phẩy | Mỗi block tách bằng thụt lề (indentation). Không cần chấm phẩy |
| Độ dễ gõ | Kiểu tĩnh mạnh (strongly typed). Biến cần khai báo kiểu trước | Động (dynamic). Không cần chỉ định kiểu dữ liệu |
| Tốc độ thực thi | Java nhanh hơn Python | Python chậm hơn Java |
| Đa kế thừa | Hỗ trợ đa kế thừa chỉ bằng interface | Hỗ trợ đa kế thừa |