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