Razlika između C++ i Java
Ključna razlika između C++ i Java
- C++ koristi samo kompajler, dok Java koristi i kompajler i interpreter.
- C++ podržava i preopterećenje operatora i preopterećenje metode dok Java podržava samo preopterećenje metode.
- C++ podržava ručno upravljanje objektima uz pomoć novih i brisanja ključnih riječi dok Java ima ugrađeno automatsko prikupljanje smeća.
- C++ podupire strukture dok Java ne podupire strukture.
- C++ podupire sindikate dok Java ne podržava sindikate.

Što je C++ jezik?
C++ je računalni programski jezik koji sadrži značajke C programskog jezika kao i Simula67 (prvi objektno orijentirani jezik). C++ uveo koncept klase i objekata.
Sažima značajke jezika visoke i niske razine. Dakle, smatra se jezikom srednje razine. Ranije se zvao "C s klasama" jer je imao sva svojstva jezika C.
Što je Java jezik?
Java je programski jezik koji je razvio Sun Microsystems. Mali tim za razvoj softvera razvio je ovaj jezik. Bili su poznati kao Green Team, koji je inicirao Java jezika 1991. godine.
Povijest od C++
C++ jezik je razvio Bjarne Stroustrup u AT & T Bell Laboratories. Stroustrup je bio snažan pristaša C-a i obožavatelj Simule67. Želio je spojiti najbolje od oba jezika. Namjeravao je stvoriti jezik koji podržava značajke objektno orijentiranog programiranja i još uvijek zadržava snagu C-a. To je rezultiralo C++.
Povijest od Java
The Java jezik se u početku zvao HRAST. Izvorno je razvijen za rukovanje uređajima i set-top box uređajima. Hrast je bio veliki neuspjeh. Tako 1995. godine Sun mijenja ime u Java i modificirao jezik kako bi iskoristio sve prednosti razvojnog poslovanja World Wide Weba.
Later, 2009. god. Oracle Korporacija je kupila Sun Microsystems i preuzela vlasništvo nad dva ključna Sun softverska sredstva: Java i Solaris.
Razlika između C++ i Java
| Parametar | C++ | Java |
|---|---|---|
| Odnos | Nema striktne veze između naziva klasa i naziva datoteka. U C++, datoteke zaglavlja i datoteke implementacije koriste se za određenu klasu. | Nametnut je strogi odnos, npr. izvorni kod za klasu PayRoll mora biti u PayRoll.java. |
| Ulazni mehanizam | I/O izjave koriste in i cout, npr. in » x; cout« y; | I/O ulazni mehanizam prilično je složen jer čita jedan po jedan bajt (System.in). Ispis je jednostavan, npr. System.out.println(x); |
| Sastavljač i tumač | C++ podržava samo kompajler | Java podržava i kompajler i interpreter |
| Kompatibilnost s drugim jezicima | Kompatibilan s C izvornim kodom, osim u nekim iznimnim slučajevima. | Nema povratne kompatibilnosti s bilo kojim prethodnim jezikom. Sintaksa je pod utjecajem C/C++. |
| Kontrola pristupa i zaštita objekata | Fleksibilni model s dostupnom stalnom zaštitom | Glomazan model potiče slabu enkapsulaciju. |
| Koncept | Napišite jednom kompilirajte bilo gdje | Pišite jednom trčite bilo gdje svugdje |
| Podrška za vrstu programiranja | Omogućuje i proceduralno programiranje i objektno orijentirano programiranje. | Podržava objektno orijentirani model programiranja. |
| Sučelje | Omogućuje izravne pozive izvornim sistemskim bibliotekama. | Zvati samo putem Java Izvorno sučelje i nedavno Java Izvorni pristup |
| Upravljanje memorijom | Dostupno programeru | Sustav kontroliran |
| Korijenska hijerarhija | C++ ne postoji takva korijenska hijerarhija. C++ podržava i proceduralno i objektno programiranje; stoga se naziva hibridnim jezikom. | Java je čisti objektno orijentirani programski jezik. To je. Zašto slijedi jednokorijensku hijerarhiju. |
| Najbolje značajke | C++ podržava Objektno orijentirane značajke Značajke proceduralnog programiranja. | Java podržava automatsko sakupljanje smeća. Ne podržava destruktore kao C++ radi. |
| Izjava Goto | C++ ima goto izjavu. Iako nije idealno koristiti naredbu goto. | Java nema goto naredbu. Ključne riječi got i const su rezervirane čak i ako se ne koriste. |
| Višestruko nasljeđivanje | C++ pružiti višestruko nasljeđivanje. Ključna riječ virtual koristi se za rješavanje problema tijekom višestrukog nasljeđivanja ako ih ima. | Java ne osigurava višestruko nasljeđivanje. |
| Operator rezolucije opsega | C++ ima operator rezolucije opsega (: :) koji se koristi za definiranje metode izvan klase i za pristup globalnoj varijabli unutar iz opsega gdje lokalna varijabla također postoji s istim imenom. |
Nema operatora razlučivanja opsega (: :) in Java. Definicije metoda moraju se pojaviti unutar klase, tako da nema potrebe za rješavanjem opsega. |
| Potporna metoda | C++ podržava i preopterećenje metoda i preopterećenje operatora | Java podržava samo preopterećenje metode. Ne pruža podršku za preopterećenje operatora. |
| Pokretnost | Izvor se mora ponovno kompajlirati za platformu; stoga kod nije prenosiv. | Klase bajt koda mogu se prenijeti na JVM specifične za platformu. |
| Semantika tipa | Dosljednost između primitivnih i objektnih tipova. | Razlikuju se za primitivne i objektne tipove. |
| Knjižnice | Funkcionalnost pretežno niske razine | Masivne klase za usluge na visokoj razini. |
| Otkrivanje pogrešaka tijekom izvođenja | Odgovornost programera. | Odgovornost sustava. |
| Funkcije i podaci | Funkcije i podaci mogu postojati izvan bilo koje klase, dostupni su globalni i imenski opseg. | Sve funkcije i podaci postoje unutar klasa; dostupan je opseg paketa. |
| Platforma | C++ programi ovise o platformi. Moraju se kompilirati za određenu platformu. | Java programi su neovisni o platformi. Java programi su napisani za Java Virtualni stroj (JVM). Radit će bez potrebe za rekompilacijom. |
| Otkrivanje pogrešaka tijekom izvođenja | In C++, Odgovornost programera je provjeriti pogreške. | Odgovornost je sustava da provjeri pogreške u programu. |
| Pokazivač | C++ pokazivači podrške. | Java nudi samo ograničenu podršku za pokazivače. |
| Struktura | Podržava strukture. | Ne podržava nikakvu podršku za strukture. |
| Sindikati | C++ podržava sindikate. | Java ne podržava sindikate. |
| Upravljanje objektima | C++ podržava ručno upravljanje objektima uz pomoć novih i brisanja ključnih riječi. | Java je težak ovisi o automatskom skupljanju smeća. Ne podržava destruktore. |
