Sự khác nhau giữa C++ và Java

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

 

 

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x