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