Skillnad mellan C++ och Java

Nyckelskillnad mellan C++ och Java

  • C++ anvรคnder endast kompilatorn, medan Java anvรคnder bรฅde kompilator och tolk.
  • C++ stรถder bรฅde operatรถrsรถverbelastning och metodรถverbelastning Java stรถder endast metodรถverbelastning.
  • C++ stรถder manuell objekthantering med hjรคlp av nya och ta bort nyckelord medan Java har inbyggd automatisk sophรคmtning.
  • C++ stรถdjer strukturer medan Java stรถder inte strukturer.
  • C++ stรถdjer fackfรถreningar samtidigt Java stรถder inte fackfรถreningar.

  • C++ Vs Java
    C++ Vs Java

Vad รคr det C++ sprรฅk?

C++ รคr ett datorprogrammeringssprรฅk som innehรฅller funktionen hos programmeringssprรฅket C samt Simula67 (fรถrsta objektorienterat sprรฅk). C++ introducerade begreppet klass och objekt.

Den kapslar in sprรฅkfunktioner pรฅ hรถg och lรฅg nivรฅ. Sรฅ det ses som ett sprรฅk pรฅ mellannivรฅ. Tidigare kallades det "C med klasser" eftersom det hade alla C-sprรฅkets egenskaper.

Vad รคr det Java sprรฅk?

Java รคr ett programmeringssprรฅk utvecklat av Sun Microsystems. Ett litet mjukvaruutvecklingsteam utvecklade detta sprรฅk. De var kรคnda som Green Team, som initierade Java sprรฅket 1991.

Historien om C++

C++ sprรฅket utvecklades av Bjarne Stroustrup pรฅ AT & T Bell Laboratories. Stroustrup var en stark anhรคngare av C och en beundrare av Simula67. Han ville kombinera det bรคsta av bรฅda sprรฅken. Han siktade pรฅ att skapa ett sprรฅk som stรถder objektorienterade programmeringsfunktioner och som fortfarande behรฅller kraften i C. Detta resulterade i C++.

Historien om Java

Ocuco-landskapet Java sprรฅket kallades frรฅn bรถrjan OAK. Ursprungligen utvecklades den fรถr hantering av enheter och set-top-boxar. Ek var ett stort misslyckande. 1995 bytte Sun alltsรฅ namnet till Java och modifierade sprรฅket fรถr att dra fรถrdel av den vรคxande utvecklingsverksamheten fรถr World Wide Web.

Later2009, Oracle Corporation fรถrvรคrvade Sun Microsystems och tog รคgandet av tvรฅ viktiga Sun-programtillgรฅngar: Java och Solaris.

Skillnad mellan C++ och Java

Parameter C++ Java
Fรถrhรฅllande Inget strikt fรถrhรฅllande mellan klassnamn och filnamn. I C++, header-filer och implementeringsfiler anvรคnds fรถr specifik klass. Det strikta fรถrhรฅllandet tillรคmpas, t.ex. mรฅste kรคllkoden fรถr klass PayRoll vara i PayRoll.java.
Ingรฅngsmekanism I/O-satser anvรคnds in och cout, t.ex. i ยป x; coutยซ y; I/O-ingรฅngsmekanismen รคr ganska komplex eftersom den lรคser en byte รฅt gรฅngen (System.in). Utdata รคr lรคtt, t.ex. System.out.println(x);
Kompilator och tolk C++ stรถder endast kompilator Java stรถder bรฅde kompilator och tolk
Kompatibilitet med andra sprรฅk Kompatibel med C-kรคllkod, fรถrutom vissa undantagsfall. Ingen bakรฅtkompatibilitet med nรฅgot tidigare sprรฅk. Syntaxen pรฅverkas av C/C++.
ร…tkomstkontroll och objektskydd Flexibel modell med konstant skydd tillgรคngligt Den besvรคrliga modellen uppmuntrar till svag inkapsling.
Konceptet Skriv en gรฅng kompilera var som helst Skriv en gรฅng kรถr var som helst รถverallt
Stรถd fรถr programmeringstyp Tillรฅter bรฅde procedurell programmering och objektorienterad programmering. Stรถd objektorienterad programmeringsmodell.
Grรคnssnitt Tillรฅter direkta samtal till inbyggda systembibliotek. Ring bara via Java Native Interface och nyligen Java Native Access
Minneshantering Tillgรคnglig fรถr programmerare Systemstyrd
Rothierarki C++ det finns ingen sรฅdan rothierarki. C++ stรถder bรฅde procedur- och objektorienterad programmering; dรคrfรถr kallas det ett hybridsprรฅk. Java รคr ett rent objektorienterat programmeringssprรฅk. Det รคr. Varfรถr det fรถljer enkelrothierarki.
Bรคsta egenskaperna C++ stรถder objektorienterade funktioner Procedurprogrammeringsfunktioner. Java stรถdja automatisk sophรคmtning. Det stรถder inte fรถrstรถrare som C++ gรถr.
Gรฅ till uttalande C++ har ett goto-uttalande. ร„ven om det inte รคr idealiskt att anvรคnda ett goto-uttalande. Java har inget goto uttalande. Nyckelorden got och const รคr reserverade รคven om de inte anvรคnds.
Flera arv C++ tillhandahรฅlla flera arv. Nyckelordet virtuell anvรคnds fรถr att lรถsa problem under multipla arv om det finns nรฅgra. Java ger inte flera arv.
Operatรถr fรถr omfattningsupplรถsning C++ har scope resolution operator (: :) som anvรคnds fรถr att definiera en metod utanfรถr en klass och fรถr att komma รฅt en global variabel inom frรฅn scope dรคr en lokal variabel ocksรฅ finns med samma namn. Ingen operatรถr fรถr scope resolution (: :) in Java. Metoddefinitionerna mรฅste fรถrekomma inom en klass, sรฅ det finns inget behov av scope resolution.
Stรถdmetod C++ stรถder bรฅde metodรถverbelastning och operatรถrsรถverbelastning Java stรถder endast metodรถverbelastning. Det ger inte stรถd fรถr operatรถrens รถverbelastning.
Portabilitet Kรคllan mรฅste kompileras om fรถr plattformen. dรคrfรถr รคr koden inte bรคrbar. Bytekodklasser kan รถverfรถras till plattformsspecifika JVM:er.
Skriv semantik Konsekvent mellan primitiva och objekttyper. Olika fรถr primitiva och objekttyper.
bibliotek ร–vervรคgande lรฅgfunktionalitet Massiva klasser fรถr tjรคnster pรฅ hรถg nivรฅ.
Runtime error detect Programmeraransvar. Systemansvar.
Funktioner och data Funktioner och data kan finnas utanfรถr alla klass-, globala och namnomrรฅdesomfรฅng รคr tillgรคngliga. Alla funktioner och data finns inom klasser; paketomfattning รคr tillgรคngliga.
plattform C++ program รคr plattformsberoende. De mรฅste kompileras fรถr en viss plattform. Java programmen รคr plattformsoberoende. Java program รคr skrivna fรถr Java Virtuell maskin (JVM). Det kommer att kรถras utan att behรถva kompileras.
Runtime error detect In C++, Det รคr programmerarens ansvar att kontrollera felen. Det รคr systemets ansvar att kontrollera fel i programmet.
Pointer C++ stรถdpekare. Java erbjuder endast begrรคnsat stรถd fรถr pekare.
Structure Det stรถder strukturer. Det ger inget stรถd fรถr strukturer.
Fackfรถreningar C++ stรถdjer fackfรถreningar. Java stรถdjer inte fackfรถreningar.
Objekthantering C++ stรถder manuell objekthantering med hjรคlp av nya och raderade nyckelord. Java รคr tungt beroende av automatisk sophรคmtning. Den stรถder inte fรถrstรถrare.

Sammanfatta detta inlรคgg med: