Erinevus C++ ja Java

Peamine erinevus C++ ja Java

  • C++ kasutab ainult kompilaatorit, kusjuures Java kasutab nii kompilaatorit kui ka interpretaatorit.
  • C++ toetab nii operaatori ülekoormust kui ka meetodi ülekoormamist Java toetab ainult meetodi ülekoormamist.
  • C++ toetab käsitsi objektide haldamist uute ja kustutatavate märksõnade abil Java on sisseehitatud automaatne prügivedu.
  • C++ toetab struktuure, kusjuures Java ei toeta struktuure.
  • C++ toetab ametiühinguid samal ajal Java ei toeta ametiühinguid.

  • C++ Vs Java
    C++ Vs Java

Mis on C++ keel?

C++ on arvutiprogrammeerimiskeel, mis sisaldab nii C programmeerimiskeele kui ka Simula67 (esimene objektorienteeritud keel) funktsiooni. C++ tutvustas klassi ja objektide mõistet.

See sisaldab kõrge ja madala taseme keelefunktsioone. Seega nähakse seda kesktaseme keelena. Varem nimetati seda "C-ks klassidega", kuna sellel olid kõik C-keele omadused.

Mis on Java keel?

Java on Sun Microsystemsi poolt välja töötatud programmeerimiskeel. Selle keele töötas välja väike tarkvaraarenduse meeskond. Neid tunti rohelise meeskonnana, kes algatas Java keel 1991. aastal.

Ajalugu C++

C++ keele töötas välja Bjarne Stroustrup AT & T Bell Laboratoriesis. Stroustrup oli C tugev toetaja ja Simula67 austaja. Ta tahtis ühendada mõlema keele parimad omadused. Tema eesmärk oli luua keel, mis toetab objektorienteeritud programmeerimise funktsioone ja säilitab endiselt C võimsuse. C++.

Ajalugu Java

. Java keelt nimetati algselt TAMMiks. Algselt töötati see välja seadmete ja digibokside käsitsemiseks. Tamm oli tohutu läbikukkumine. Nii muutis Sun 1995. aastal nime uueks Java ja muutis keelt, et kasutada ära kasvavat World Wide Web arendusäri.

Later, 2009. aastal, Oracle Corporation omandas Sun Microsystemsi ja võttis omanduseks kaks peamist Suni tarkvaravara: Java ja Solaris.

Erinevus C++ ja Java

Parameeter C++ Java
Suhe Klassinimede ja failinimede vahel puudub range seos. sisse C++, päisefaile ja rakendusfaile kasutatakse konkreetse klassi jaoks. Range seos on jõustatud, nt klassi PayRoll lähtekood peab olema PayRoll.java.
Sisendmehhanism I/O-laused kasutavad in ja cout, nt in » x; cout« y; I/O sisendmehhanism on üsna keeruline, kuna see loeb ühe baiti korraga (System.in). Väljund on lihtne, nt System.out.println(x);
Koostaja ja tõlk C++ ainult tugikompilaator Java toetab nii kompilaatorit kui ka tõlgendajat
Ühilduvus teiste keeltega Ühildub C lähtekoodiga, välja arvatud mõned erandjuhud. Tagasiühilduvus ühegi varasema keelega puudub. Süntaksit mõjutab C/C++.
Juurdepääsu kontroll ja objektide kaitse Saadaval on pideva kaitsega paindlik mudel Tülikas mudel soodustab nõrka kapseldamist.
Mõiste Kirjutage üks kord kompileerige ükskõik kuhu Kirjuta üks kord jookse kõikjal kõikjal
Programmeerimistüübi tugi Võimaldab nii protseduurilist programmeerimist kui ka objektorienteeritud programmeerimist. Toetage objektorienteeritud programmeerimismudelit.
Interface Võimaldab otsekõnesid algsüsteemi teekidesse. Helistage ainult läbi Java Native Interface ja hiljuti Java Native Access
Mälu haldamine Juurdepääs programmeerijale Süsteem kontrollitud
Juurhierarhia C++ sellist juurhierarhiat pole. C++ toetab nii protseduurilist kui objektorienteeritud programmeerimist; seetõttu nimetatakse seda hübriidkeeleks. Java on puhas objektorienteeritud programmeerimiskeel. See on. Miks See järgib ühe juure hierarhiat.
parimad omadused C++ toetab objektorienteeritud funktsioone Protseduurilised programmeerimisfunktsioonid. Java toetada automaatset prügikoristust. See ei toeta hävitajaid nagu C++ teeb.
Goto avaldus C++ on goto avaldus. Kuigi pole ideaalne kasutada lauset goto. Java tal puudub avaldus. Märksõnad said ja const on reserveeritud isegi siis, kui neid ei kasutata.
Mitmekordne pärand C++ pakkuda mitut pärandit. Märksõna virtual kasutatakse probleemide lahendamiseks mitmikpärimise ajal, kui neid on. Java ei anna mitmekordset pärandit.
Ulatuse eraldusvõime operaator C++ on ulatuse eraldusvõime operaator (: :) mida kasutatakse meetodi määratlemiseks väljaspool klassi ja globaalsele muutujale juurdepääsu saamiseks ulatuses, kus on olemas ka sama nimega kohalik muutuja. Puudub ulatuse eraldusvõime operaator (: :) in Java. Meetodi määratlused peavad esinema klassi sees, seega pole vaja ulatuse lahutust.
Toetav meetod C++ toetab nii meetodi ülekoormust kui ka operaatori ülekoormust Java toetab ainult meetodi ülekoormamist. See ei toeta operaatori ülekoormamist.
Kaasaskantavus Allikas tuleb platvormi jaoks uuesti kompileerida; seega kood pole kaasaskantav. Baitkoodi klassid on ülekantavad platvormipõhistele JVM-idele.
Tüübisemantika Kooskõla primitiivsete ja objektitüüpide vahel. Erinevad primitiivsete ja objektitüüpide puhul.
Raamatukogud Valdavalt madala funktsionaalsusega Massiivsed klassid kõrgetasemeliste teenuste jaoks.
Käitusaja vigade tuvastamine Programmeerija vastutus. Süsteemi vastutus.
Funktsioonid ja andmed Funktsioonid ja andmed võivad eksisteerida väljaspool mis tahes klassi, saadaval on globaalsed ja nimeruumi ulatused. Kõik funktsioonid ja andmed on klassides olemas; paketi ulatus on saadaval.
Platvorm C++ programmid sõltuvad platvormist. Need tuleb koostada konkreetse platvormi jaoks. Java programmid on platvormist sõltumatud. Java programmid on kirjutatud Java Virtuaalmasin (JVM). See töötab ilma uuesti kompileerimist vajamata.
Käitusaja vigade tuvastamine In C++, Programmeerija vastutab vigade kontrollimise eest. Süsteem vastutab programmi vigade kontrollimise eest.
Pointer C++ tugiosutid. Java pakub osutajatele vaid piiratud tuge.
struktuur See toetab struktuure. See ei toeta struktuure.
Ametiühingud C++ toetab ametiühinguid. Java ei toeta ametiühinguid.
Objekti haldamine C++ toetab käsitsi objektide haldamist uute ja kustutatavate märksõnade abil. Java on raske, sõltub automaatsest prügikorjamisest. See ei toeta hävitajaid.

Võta see postitus kokku järgmiselt: