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