Mục lục
C++ là gì?
C++ là một ngôn ngữ lập trình thừa hưởng tất cả các tính ăng của C cũng như Simula67 (ngôn ngữ hướng đối tượng đầu tiên). C ++ giới thiệu khái niệm class và object, bao gôm cả các tính năng ngôn ngữ cấp cao và cấp thấp. Vì vậy, nó được xem như một ngôn ngữ cấp trung gian.
Java là gì?
Java là ngôn ngữ lập trình được phát triển bởi Sun Microsystems. Một nhóm phát triển phần mềm nhỏ đã phát triển ngôn ngữ này. Họ được biết đến với cái tên Green Team, những người đã khởi xướng ngôn ngữ Java vào năm 1991.
Lịch sử hình thành Java
Ngôn ngữ Java ban đầu được gọi là OAK. Ban đầu, nó được phát triển để xử lý các thiết bị và hộp giải mã tín hiệu. Oak là một thất bại lớn. Do đó, vào năm 1995, Sun đổi tên thành Java và sửa đổi ngôn ngữ này để tận dụng lợi thế của sự phát triển World Wide Web.
Sau đó, vào năm 2009, Tập đoàn Oracle mua lại Sun Microsystems và nắm quyền sở hữu hai tài sản phần mềm quan trọng của Sun: Java và Solaris.
Những điểm khác biệt chính giữa Java vs C++
C ++ chỉ sử dụng trình biên dịch, trong khi Java sử dụng trình biên dịch và trình thông dịch cả hai.
C ++ hỗ trợ cả nạp chồng toán tử & nạp chồng phương thức trong khi Java chỉ hỗ trợ nạp chồng phương thức.
C ++ hỗ trợ quản lý đối tượng thủ công với sự trợ giúp của các từ khóa new và delete trong khi Java tích hợp sẵn tính năng thu gom rác tự động.
C ++ hỗ trợ structure trong khi Java không hỗ trợ.
C++ hỗ trợ unions while còn Java thì không hỗ trợ.
Ngoài ra chúng ta có các những điểm khác biệt nhỏ khác như
C++ | Java | |
Relationship | Không có mối quan hệ chặt chẽ giữa tên lớp và tên tệp. Trong C ++,header file và implementation file được sử dụng cho class cụ thể. | Mối quan hệ chặt chẽ được thực thi, ví dụ: mã nguồn cho lớp PayRoll phải ở trong PayRoll.java |
Input mechanism | Các câu lệnh I / O sử dụng in và cout, ví dụ: in »x; cout« y; | Cơ chế nhập I / O khá phức tạp vì nó đọc từng byte một (System.in). Đầu ra dễ dàng, ví dụ: System.out.println (x); |
Compiler và Interpreter | C ++ chỉ hỗ trợ trình biên dịch | Java hỗ trợ cả trình biên dịch và trình thông dịch |
Compatibility | Tương thích với mã nguồn C, trừ một số trường hợp ngoại lệ. | Không có khả năng tương thích ngược với bất kỳ ngôn ngữ nào trước đó. Cú pháp bị ảnh hưởng bởi C / C ++. |
Concept | Viết một lần biên dịch ở bất cứ đâu | Viết một lần chạy ở mọi nơi mọi nơi |
Programming type | Cho phép cả lập trình thủ tục và lập trình hướng đối tượng. | Hỗ trợ mô hình lập trình hướng đối tượng. |
Interface | Cho phép gọi trực tiếp đến thư viện hệ thống gốc. | Chỉ gọi qua Java Native Interface và gần đây là Java Native Access |
Memory management | Quản lý bởi lập trình viên | được quản lý bởi hệ thống |
Root hierarchy | C ++ không có hệ thống phân cấp gốc. C ++ hỗ trợ cả lập trình thủ tục và hướng đối tượng; do đó, nó được gọi là ngôn ngữ lai. | Java là một ngôn ngữ lập trình hướng đối tượng thuần túy. Đó là. Tại sao Nó tuân theo hệ thống phân cấp gốc đơn. |
Goto | Hỗ trở goto | Không hỗ trợ goto, mặc dù vậy goto vẫn được xem là một keyword, nên chúng ta không thể khai báo hoặc sử dụng nó trong mã nguồn. |
Multiple inheritance | C ++ cung cấp đa kế thừa. Từ khóa virtual được sử dụng để giải quyết các vấn đề trong quá trình đa kế thừa nếu có. | Java không cung cấp đa kế thừa. |
Supporting method | phương thức C ++ hỗ trợ cả nạp chồng phương thức và nạp chồng toán tử | Java chỉ hỗ trợ nạp chồng phương thức. Nó không cung cấp hỗ trợ cho người vận hành quá tải. |
Portability | Nguồn phải được biên dịch lại cho ; do đó mã nguồn không có tính linh động | Các lớp Bytecode có thể chuyển sang JVM của nền tảng cụ thể. |
Libraries | Chủ yếu là chức năng cấp thấp | Chứa nhiều chức năng bậc cao, dễ sử dụng. |
Runtime error detection | Lập trình viên chịu trách nhiệm | System chịu trách nhiệm |
Pointer | C++ hỗ trợ con trỏ | Java cung cấp cơ chế con trỏ rất hạn chế. |
Nguồn
https://www.guru99.com/cpp-vs-java.html