So sánh JAVA vs C++

So sánh ngôn ngữ lập trình là một phần thú vị nhất. Nó có ích kể cả đối với các bạn mới học lập trình hay các lập trình viên chuyên nghiệp.

So sánh ngôn ngữ không phải là để xem ngôn ngữ nào thắng ngôn ngữ nào mà là để xem ngôn ngữ nào phù hợp nhất với những yêu cầu hiện tại, yêu cầu thực tế và điều kiện để triển khai dự án đó….

So sánh ngôn ngữ lập trình JAVA vs C++
So sánh ngôn ngữ lập trình JAVA vs C++

Hôm nay trong bài viết này mình sẽ so sánh Java vs C++. Còn nếu bạn muốn đọc thêm về so sánh Java vs PHP hay Java với C# thì xem thêm tại đây:

17 điểm khác nhau của JAVA vs C++

1. Khả năng độc lập với nền tảng

  • JAVA: Có
  • C++: Không

2. Ngôn ngữ được chủ yếu sử dụng làm gì?

  • JAVA: Java đầu tiên sinh ra được chủ yếu được sử dụng để lập trình ứng dụng. Nhưng ngày nay nó cũng được chủ yếu sử dụng Lập trình Web, ứng dụng Windows, ứng dụng Doanh nghiệp và ứng dụn di động (Android).
  • C++: Chủ yếu được sử dụng cho lập trình hệ thống.

3. Mục tiêu thiết kế của ngôn ngữ

  • JAVA: Java được thiết kế và tạo ra như một trình thông dịch cho các hệ thống in nhưng sau đó được mở rộng như một hỗ trợ mạng máy tính. Nó được thiết kế với mục tiêu dễ sử dụng và dễ tiếp cận với đối tượng rộng hơn.
  • C++: Được thiết kế cho các hệ thống và lập trình ứng dụng. Đó là một phần mở rộng của ngôn ngữ lập trình C.

4. Hỗ trợ câu lệnh Goto

  • JAVA: Không hỗ trợ câu lệnh Goto
  • C++: Có hỗ trợ

5. Tính đa kế thừa của ngôn ngữ

  • JAVA: Không hỗ trợ đa kế thừa thông qua class. Nhưng chúng ta có thể có đa kế thừa bằng interface.
  • C++: Hỗ trợ đa kế thừa.

6. Khả năng hỗ trợ Toán tử Overloading

  • JAVA: Không
  • C++: Có

7. Con trỏ

  • JAVA: Java hỗ trợ con trỏ trong nội bộ. Tuy nhiên, bạn không thể viết chương trình con trỏ trong java. Nó có nghĩa là java đã hạn chế hỗ trợ con trỏ trong java.
  • C ++: Hỗ trợ con trỏ. Bạn có thể viết chương trình con trỏ trong C ++

8. Trình biên dịch và phiên dịch

  • JAVA: Java sử dụng cả trình biên dịch và trình thông dịch. Mã nguồn Java được chuyển đổi thành bytecode trong thời gian biên dịch. Trình thông dịch thực thi bytecode này khi chạy và tạo đầu ra. Đây là lý do vì sao Java lại độc lập với nền tảng.
  • C++: Chỉ sử dụng trình biên dịch. C ++ được biên dịch và chạy bằng trình biên dịch chuyển đổi mã nguồn thành mã máy, do đó, C ++ phụ thuộc vào nền tảng.

9. Gọi theo giá trị và gọi theo tham chiếu

  • JAVA: Java chỉ hỗ trợ gọi theo giá trị. Không có gọi bằng cách tham chiếu trong java.
  • C++: Hỗ trợ cả gọi theo giá trị và gọi theo tham chiếu.

10. Hỗ trợ Structure và Union

  • JAVA: Không
  • C++: Có

11. Hỗ trợ Luồng

  • JAVA: Hỗ trợ luồng tích hợp sẵn
  • C++: Không có hỗ trợ tích hợp. Nó dựa vào các thư viện của bên thứ ba để hỗ trợ luồng.

12. Hỗ trợ Comment tạo tài liệu

  • JAVA: Có hỗ trợ bằng /** … */
  • C++: Không hỗ trợ

13. Hỗ trợ từ khóa ảo

  • JAVA: Java không có từ khóa ảo. Chúng ta có thể ghi đè tất cả các phương thức không tĩnh theo mặc định. Nói cách khác, các phương thức không tĩnh là ảo theo mặc định.
  • C++: Hỗ trợ từ khóa ảo để chúng ta có thể quyết định có ghi đè chức năng hay không.

14. Hỗ trợ toán tử >>>

  • JAVA: Java hỗ trợ toán tử dịch chuyển phải không dấu, điền 0 ở đầu cho các số âm. Đối với các số dương, nó hoạt động giống như toán tử.
  • C++: Không hỗ trợ

15. Cây kế thừa (Inheritacne Tree)

  • JAVA: Java luôn sử dụng một cây kế thừa duy nhất bởi vì tất cả các lớp là con của lớp Object trong java. Lớp Object là gốc của cây kế thừa trong java.
  • C++: Tạo cây kế thừa mới luôn.

16. Phần cứng

  • JAVA: Java không tương tác với phần cứng.
  • C++: Gần với phần cứng hơn.

17. Hướng đối tượng (Object Oriented)

  • JAVA: là một ngôn ngữ hướng đối tượng. Tuy nhiên, mọi thứ (trừ các loại cơ bản) là một đối tượng trong Java. Nó là một hệ thống phân cấp gốc duy nhất vì mọi thứ đều bắt nguồn từ java.lang.Object.
  • C++: Là một ngôn ngữ hướng đối tượng. Tuy nhiên, trong ngôn ngữ C, hệ thống phân cấp gốc đơn là không thể.

Và còn nhiều điềm khác nhau nữa:

  • Java không hỗ trợ các đối số mặc định như C ++.
  • Java không hỗ trợ các tệp tiêu đề như C ++. Java sử dụng từ khóa import để bao gồm các lớp và phương thức khác nhau.

Ví dụ về đoạn Code JAVA

File Java sẽ kết thúc với đuối java. Ví dụ: main.java

class Simple{  
    public static void main(String args[]){  
     System.out.println("Hello Java");  
    }  
}

Ví dụ về đoạn Code C++

File C++ sẽ kết thúc với đuôi cpp. Ví dụ: main.cpp

#include <iostream>  
using namespace std;  
int main() {  
   cout << "Hello C++ Programming";  
   return 0;  
}

Như vậy qua bài viết này bạn đã cơ bản hiểu JAVA khác với C++ ở chỗ nào rồi chứ?

So sánh ngôn ngữ lập trình để chọn ngôn ngữ phù hợp nhất
So sánh ngôn ngữ lập trình để chọn ngôn ngữ phù hợp nhất

Hãy nhớ rằng, việc so sánh ngôn ngữ lập trình JAVA vs C++ không phải để xem ai là người chiến thắng mà là xem ngôn ngữ nào phù hợp với từng trường hợp cụ thể.

Bài viết gần đây

Từ khóa FINAL trong JAVA

Từ khóa final có thể được áp dụng với các biến, một biến final không có giá trị, nó được gọi là biến final trống hoặc biến cuối cùng chưa được khởi tạo.

Khối Khởi tạo thể hiện trong JAVA

Khối khởi tạo thể hiện được sử dụng để khởi tạo các biến thể hiện. Nó chạy mỗi lần khi đối tượng của lớp được tạo.

Ví dụ sử dụng từ khóa Super trong JAVA

Để hiểu cụ thể từ khóa super trong Java làm việc như thế nào, chúng ta cùng đi qua các ví dụ bên dưới đây:

Kiểu trả về Covariant trong Java

Kiểu trả về covariant đề cập đến kiểu trả về của phương thức ghi đè. Nó cho phép thu hẹp loại trả về của một phương thức được ghi đè mà không cần phải truyền loại hoặc kiểm tra loại trả về.

Method Overriding trong Java

Nếu subclass (lớp con) có các phương thức tương tự như trong các super class (class cha), nó được gọi là Method Overriding (Ghi đè phương thức) trong Java.

Method Overloading trong JAVA

Nếu một class có nhiều phương thức có cùng tên, nhưng đối số khác nhau, nó được gọi là Method Overloading. Có 2 cách thực hiện method Overloading trong Java

Leave a reply

Please enter your comment!
Please enter your name here