Forskel mellem C++ og Java
Nøgleforskel mellem C++ og Java
- C++ bruger kun compiler, hvorimod Java bruger både compiler og tolk.
- C++ understøtter både operatøroverbelastning og metodeoverbelastning Java understøtter kun metodeoverbelastning.
- C++ understøtter manuel objektstyring ved hjælp af nye og slette nøgleord Java har indbygget automatisk renovation.
- C++ understøtter strukturer, hvorimod Java understøtter ikke strukturer.
- C++ støtter fagforeninger mens Java støtter ikke fagforeninger.
Hvad er det C++ Sprog?
C++ er et computerprogrammeringssprog, der indeholder funktionen af programmeringssprog C samt Simula67 (første objektorienteret sprog). C++ introducerede begrebet Klasse og Objekter.
Det indkapsler sprogfunktioner på højt og lavt niveau. Så det ses som et sprog på mellemniveau. Tidligere blev det kaldt "C med klasser", da det havde alle C-sprogets egenskaber.
Hvad er det Java Sprog?
Java er programmeringssprog udviklet af Sun Microsystems. Et lille softwareudviklingsteam udviklede dette sprog. De var kendt som Det Grønne Hold, som indledte Java sprog i 1991.
Historie C++
C++ sproget er udviklet af Bjarne Stroustrup ved AT & T Bell Laboratories. Stroustrup var en stærk tilhænger af C og en beundrer af Simula67. Han ville kombinere det bedste fra begge sprog. Han havde til formål at skabe et sprog, der understøtter objektorienterede programmeringsfunktioner og stadig bevarer kraften fra C. Dette resulterede i C++.
Historie Java
Java sprog blev oprindeligt kaldt OAK. Oprindeligt blev den udviklet til håndtering af enheder og set-top-bokse. Eg var en massiv fiasko. I 1995 ændrede Sun således navnet til Java og ændrede sproget for at drage fordel af den spirende World Wide Web-udviklingsvirksomhed.
Later, i 2009, Oracle Corporation købte Sun Microsystems og overtog ejerskabet af to vigtige Sun-softwareaktiver: Java og Solaris.
Forskel mellem C++ og Java
Parameter | C++ | Java |
---|---|---|
Relationship | Intet strengt forhold mellem klassenavne og filnavne. I C++, header-filer og implementeringsfiler bruges til specifik klasse. | Det strenge forhold håndhæves, f.eks. Skal kildekoden til klasse PayRoll være i PayRoll.java. |
Input mekanisme | I/O-sætninger bruges in og cout, f.eks. i » x; cout« y; | I/O-inputmekanisme er ret kompleks, da den læser én byte ad gangen (System.in). Output er nemt, f.eks. System.out.println(x); |
Kompilator og tolk | C++ understøtter kun compiler | Java understøtter både compiler og tolk |
Kompatibilitet med andre sprog | Kompatibel med C-kildekode, undtagen nogle ekstraordinære tilfælde. | Ingen bagudkompatibilitet med noget tidligere sprog. Syntaksen er påvirket af C/C++. |
Adgangskontrol og genstandsbeskyttelse | Fleksibel model med konstant beskyttelse tilgængelig | Den besværlige model tilskynder til svag indkapsling. |
Concept | Skriv en gang kompilér hvor som helst | Skriv en gang køre hvor som helst overalt |
Understøttelse af programmeringstype | Tillader både procedureprogrammering og objektorienteret programmering. | Understøtter objektorienteret programmeringsmodel. |
grænseflade | Tillader direkte opkald til oprindelige systembiblioteker. | Ring kun gennem Java Native Interface og for nylig Java Native Access |
Hukommelsesstyring | Tilgængelig for programmør | Systemstyret |
Rothierarki | C++ der er ikke noget sådant rodhierarki. C++ understøtter både proceduremæssig og objektorienteret programmering; derfor kaldes det et hybridsprog. | Java er et rent objektorienteret programmeringssprog. Det er. Hvorfor det følger enkeltrodshierarki. |
Bedste funktioner | C++ understøtter objektorienterede funktioner Procedurelle programmeringsfunktioner. | Java understøtter automatisk affaldsindsamling. Det understøtter ikke destruktorer som C++ gør. |
Gå til erklæring | C++ har en goto-erklæring. Selvom det ikke er ideelt at bruge en goto-erklæring. | Java har ingen goto-erklæring. Nøgleordene got, og const er reserveret, selvom de ikke bruges. |
Flere arv | C++ give multiple arv. Nøgleordet virtuel bruges til at løse problemer under multipleinheritation, hvis der er nogen. | Java giver ikke multipel arv. |
Scope resolution operator | C++ har scope resolution operator (: :) som bruges til at definere en metode uden for en klasse og til at få adgang til en global variabel indenfor fra det område, hvor der også findes en lokal variabel med samme navn. |
Ingen operatør for scope resolution (: :) in Java. Metodedefinitionerne skal forekomme inden for en klasse, så der er ikke behov for scope-resolution. |
Støttende metode | C++ understøtter både metodeoverbelastning og operatøroverbelastning | Java understøtter kun metodeoverbelastning. Det giver ikke støtte til operatøroverbelastning. |
Overførsel | Kilden skal kompileres igen til platformen; derfor er koden ikke bærbar. | Bytekodeklasser kan overføres til platformsspecifikke JVM'er. |
Skriv semantik | Konsistent mellem primitive og objekttyper. | Forskel for primitive og objekttyper. |
Biblioteker | Overvejende lavt niveau funktionalitet | Massive, klasser til tjenester på højt niveau. |
Registrering af kørselsfejl | Programmøransvar. | Systemansvar. |
Funktioner og data | Funktioner og data kan eksistere eksternt for enhver klasse, global rækkevidde og navneområde er tilgængelige. | Alle funktioner og data findes inden for klasser; pakkeomfang er tilgængelige. |
perron | C++ programmer er platformafhængige. De skal kompileres til en bestemt platform. | Java programmer er platformsuafhængige. Java programmer er skrevet til Java Virtuel maskine (JVM). Det vil køre uden behov for genkompilering. |
Registrering af kørselsfejl | In C++, Det er programmørens ansvar at kontrollere fejlene. | Det er systemets ansvar at kontrollere fejl i programmet. |
Pointer | C++ støtte pointer. | Java tilbyder kun begrænset support til pointere. |
Struktur | Det understøtter strukturer. | Det understøtter ikke strukturer. |
Fagforeninger | C++ støtter fagforeninger. | Java støtter ikke fagforeninger. |
Objektstyring | C++ understøtter manuel objektstyring ved hjælp af nye og slette nøgleord. | Java er tungt afhængig af automatisk affaldsindsamling. Det understøtter ikke destruktorer. |