Postoje mnoge razlike i sličnosti između C++ programiranje jezik i Java . Popis glavnih razlika između C++ i Jave dan je u nastavku:
| Indeks usporedbe | C++ | Java |
|---|---|---|
| Neovisan o platformi | C++ ovisi o platformi. | Java je neovisna o platformi. |
| Uglavnom se koristi za | C++ se uglavnom koristi za sistemsko programiranje. | Java se uglavnom koristi za programiranje aplikacija. Široko se koristi u Windows-baziranim, web-temeljenim, poslovnim i mobilnim aplikacijama. |
| Cilj dizajna | C++ je dizajniran za programiranje sustava i aplikacija. Bio je to produžetak C programski jezik . | Java je dizajnirana i stvorena kao tumač za sustave ispisa, ali je kasnije proširena kao podrška mrežnom računalstvu. Osmišljen je da bude jednostavan za korištenje i dostupan široj publici. |
| Ići | C++ podržava naredbu goto. | Java ne podržava naredbu goto. |
| Višestruko nasljeđivanje | C++ podržava višestruko nasljeđivanje. | Java ne podržava višestruko nasljeđivanje kroz klasu. To se može postići korištenjem sučelja u Javi . |
| Preopterećenje operatora | C++ podržava preopterećenje operatera . | Java ne podržava preopterećenje operatora. |
| Pokazivači | C++ podržava pokazivače. Možete napisati pokazivački program u C++. | Java interno podržava pokazivač. Međutim, ne možete napisati pokazivački program u Javi. To znači da Java ima ograničenu podršku pokazivača u Javi. |
| Sastavljač i tumač | C++ koristi samo kompajler. C++ se prevodi i izvodi pomoću prevodioca koji pretvara izvorni kod u strojni kod tako da C++ ovisi o platformi. | Java koristi i kompajler i interpreter. Java izvorni kod se pretvara u bajt kod u vrijeme kompilacije. Interpretator izvršava ovaj bajt kod tijekom izvođenja i proizvodi izlaz. Java se tumači zato je neovisna o platformi. |
| Poziv po vrijednosti i Poziv po referenci | C++ podržava i poziv po vrijednosti i poziv po referenci. | Java podržava poziv samo prema vrijednosti. Ne postoji poziv prema referenci u Javi. |
| Struktura i unija | C++ podržava strukture i unije. | Java ne podržava strukture i unije. |
| Podrška za niti | C++ nema ugrađenu podršku za niti. Za podršku niti oslanja se na biblioteke trećih strana. | Java ima ugrađenu nit podrška. |
| Komentar dokumentacije | C++ ne podržava komentare dokumentacije. | Java podržava dokumentacijski komentar (/** ... */) za izradu dokumentacije za Java izvorni kod. |
| Virtualna ključna riječ | C++ podržava virtualnu ključnu riječ tako da možemo odlučiti hoćemo li nadjačati funkciju ili ne. | Java nema virtualnu ključnu riječ. Prema zadanim postavkama možemo nadjačati sve nestatičke metode. Drugim riječima, nestatičke metode su virtualne prema zadanim postavkama. |
| nepredpisani desni pomak >>> | C++ ne podržava >>> operator. | Java podržava unsigned right shift >>> operator koji popunjava nulu na vrhu za negativne brojeve. Za pozitivne brojeve, radi isto kao operator >>. |
| Stablo nasljeđivanja | C++ uvijek stvara novo stablo nasljeđivanja. | Java uvijek koristi jedno stablo nasljeđivanja jer su sve klase podređene klasi Object u Javi. Klasa Object korijen je klase nasljedstvo stablo u Javi. |
| Hardver | C++ je bliži hardveru. | Java nije toliko interaktivna s hardverom. |
| Objektno orijentirano | C++ je objektno orijentirani jezik. Međutim, u jeziku C jednokorijenska hijerarhija nije moguća. | Java je također objektno orijentirano Jezik. Međutim, sve (osim temeljnih tipova) je objekt u Javi. To je hijerarhija s jednim korijenom budući da se sve izvodi iz java.lang.Object. |
Bilješka
- Java ne podržava zadane argumente poput C++.
- Java ne podržava datoteke zaglavlja poput C++. Java koristi ključnu riječ import za uključivanje različitih klasa i metoda.
Primjer C++ programa
Datoteka: main.cpp
#include using namespace std; int main() { cout << 'Hello C++ Programming'; return 0; } Izlaz:
Hello C++ Programming
Primjer Java programa
Datoteka: Simple.java
class Simple{ public static void main(String args[]){ System.out.println('Hello Java'); } } Izlaz:
pretvaranje niza u int u Javi
Hello Java