Forskjell mellom C++ og Java
Nøkkelforskjell mellom C++ og Java
- C++ bruker kun kompilator, mens Java bruker både kompilator og tolk.
- C++ støtter både operatøroverbelastning og metodeoverbelastning Java støtter bare metodeoverbelastning.
- C++ støtter manuell objektstyring ved hjelp av nye og slette nøkkelord mens Java har innebygget automatisk søppelhenting.
- C++ støtter strukturer mens Java støtter ikke strukturer.
- C++ støtter fagforeninger mens Java støtter ikke fagforeninger.
Hva er den C++ Språk?
C++ er et dataprogrammeringsspråk som inneholder funksjonen til programmeringsspråket C samt Simula67 (første objektorientert språk). C++ introduserte konseptet klasse og objekter.
Den innkapsler språkfunksjoner på høyt og lavt nivå. Så det blir sett på som et språk på mellomnivå. Tidligere ble det kalt "C med klasser" da det hadde alle egenskapene til C-språket.
Hva er den Java Språk?
Java er programmeringsspråk utviklet av Sun Microsystems. Et lite programvareutviklingsteam utviklet dette språket. De var kjent som det grønne laget, som initierte Java språk i 1991.
Historie C++
C++ språket er utviklet av Bjarne Stroustrup ved AT & T Bell Laboratories. Stroustrup var en sterk tilhenger av C og en beundrer av Simula67. Han ønsket å kombinere det beste fra begge språkene. Han hadde som mål å lage et språk som støtter objektorienterte programmeringsfunksjoner og fortsatt beholder kraften til C. Dette resulterte i C++.
Historie Java
De Java språk ble opprinnelig kalt OAK. Opprinnelig ble den utviklet for håndtering av enheter og set-top-bokser. Eik var en massiv fiasko. I 1995 endret Sun derfor navnet til Java og endret språket for å dra nytte av den spirende utviklingsvirksomheten på World Wide Web.
Later, i 2009, Oracle Corporation kjøpte Sun Microsystems og tok eierskap av to viktige Sun-programvareressurser: Java og Solaris.
Forskjell mellom C++ og Java
Parameter | C++ | Java |
---|---|---|
Slektskap | Ingen streng relasjon mellom klassenavn og filnavn. I C++, header-filer og implementeringsfiler brukes for spesifikk klasse. | Det strenge forholdet håndheves, f.eks. må kildekoden for klassen PayRoll være i PayRoll.java. |
Inndatamekanisme | I/O-setninger brukes i og ut, f.eks. i » x; cout« y; | I/O-inngangsmekanisme er en ganske kompleks da den leser en byte om gangen (System.in). Utdata er enkelt, f.eks. System.out.println(x); |
Kompilator og tolk | C++ støtter kun kompilator | Java støtter både kompilator og tolk |
Kompatibilitet med andre språk | Kompatibel med C-kildekode, bortsett fra noen unntakstilfeller. | Ingen bakoverkompatibilitet med tidligere språk. Syntaksen er påvirket av C/C++. |
Adgangskontroll og objektbeskyttelse | Fleksibel modell med konstant beskyttelse tilgjengelig | Den tungvinte modellen oppmuntrer til svak innkapsling. |
Concept | Skriv en gang kompiler hvor som helst | Skriv en gang løp hvor som helst overalt |
Støtte for programmeringstype | Tillater både prosedyreprogrammering og objektorientert programmering. | Støtte objektorientert programmeringsmodell. |
Interface | Tillater direkte anrop til opprinnelige systembiblioteker. | Ring kun gjennom Java Native Interface og nylig Java Innfødt tilgang |
Minnehåndtering | Tilgjengelig for programmerer | System kontrollert |
Rothierarki | C++ det er ikke noe slikt rothierarki. C++ støtter både prosessuell og objektorientert programmering; derfor kalles det et hybridspråk. | Java er et rent objektorientert programmeringsspråk. Det er. Hvorfor det følger enkeltrothierarki. |
Beste egenskaper | C++ støtter objektorienterte funksjoner Prosedyreprogrammeringsfunksjoner. | Java støtter automatisk søppelinnsamling. Den støtter ikke destruktorer som C++ gjør. |
Gå til uttalelse | C++ har en goto-erklæring. Selv om det ikke er ideelt å bruke en goto-uttalelse. | Java har ingen goto-erklæring. Nøkkelordene got, og const er reservert selv om de ikke brukes. |
Multippel arv | C++ gi multiple arv. Nøkkelordet virtuell brukes til å løse problemer under multiplearving hvis det er noen. | Java gir ikke multippel arv. |
Operatør for omfangsoppløsning | C++ har scope resolution operator (: :) som brukes til å definere en metode utenfor en klasse og for å få tilgang til en global variabel innenfor fra omfanget der det også finnes en lokal variabel med samme navn. |
Ingen operatør for omfangsoppløsning (: :) in Java. Metodedefinisjonene må forekomme innenfor en klasse, så det er ikke behov for omfangsoppløsning. |
Støttemetode | C++ støtter både metodeoverbelastning og operatøroverbelastning | Java støtter bare metodeoverbelastning. Den gir ikke støtte for operatøroverbelastning. |
Portabilitet | Kilden må rekompileres for plattformen; Derfor er koden ikke bærbar. | Bytekodeklasser kan overføres til plattformspesifikke JVM-er. |
Skriv semantikk | Overensstemmende mellom primitive og objekttyper. | Forskjellig for primitive og objekttyper. |
Bibliotekene | Overveiende funksjonalitet på lavt nivå | Massive, klasser for tjenester på høyt nivå. |
Oppdagelse av kjøretidsfeil | Programmerer ansvar. | Systemansvar. |
Funksjoner og data | Funksjoner og data kan eksistere utenfor alle klasser, globale og navneomfang er tilgjengelige. | Alle funksjoner og data finnes innenfor klasser; pakkeomfang er tilgjengelig. |
Plattform | C++ programmene er plattformavhengige. De må kompileres for en bestemt plattform. | Java programmene er plattformuavhengige. Java programmer er skrevet for Java Virtuell maskin (JVM). Den vil kjøre uten behov for rekompilering. |
Oppdagelse av kjøretidsfeil | In C++, Det er programmerers ansvar å sjekke feilene. | Det er systemansvar å sjekke feil i programmet. |
Pointer | C++ støttepekere. | Java tilbyr kun begrenset støtte for pekere. |
Structure | Den støtter strukturer. | Det gir ingen støtte for strukturer. |
Fagforeninger | C++ støtter fagforeninger. | Java støtter ikke fagforeninger. |
Objekthåndtering | C++ støtter manuell objektbehandling ved hjelp av nye og slette nøkkelord. | Java er tungt avhengig av automatisk søppelhenting. Den støtter ikke destruktorer. |