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.

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. |
