Forskellen mellem C ++ og Java

Nøgleforskel mellem C++ og Java

  • C++ bruger kun compiler, mens Java bruger både compiler og fortolker.
  • C++ understøtter begge dele operator overbelastning og metodeoverbelastning, hvorimod Java kun understøtter metodeoverbelastning.
  • C ++ understøtter manuel objektstyring ved hjælp af nye og slette nøgleord, mens Java har indbygget automatisk affaldsindsamling.
  • C++ understøtter strukturer, mens Java ikke understøtter strukturer.
  • C ++ understøtter fagforeninger, mens Java ikke understøtter fagforeninger.

  • C ++ mod Java
    C ++ mod Java

Hvad er C ++ sprog?

C++ er et computerprogrammeringssprog, der indeholder funktionen af C programming language 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 Java-sproget?

Java er programmeringssprog udviklet af Sun Microsystems. Et lille softwareudviklingsteam udviklede dette sprog. De var kendt som det grønne hold, som indledte Java-sproget i år 1991.

Historie af C ++

C++ sprog er udviklet af Bjarne Stroustrup hos AT & T Bell Laboratories. Stroustrup var somtrong 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 i C. Dette resulterede i C++.

Java's historie

Java-sproget blev oprindeligt kaldt OAK. Oprindeligt blev det udviklet til håndtering af enheder og set-top boxes. 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 , Solaris.

Forskellen mellem C ++ og Java

Parameter C + + Java
Relationship Intet strengt forhold mellem klassenavne og filnavne. I C++ bruges header-filer og implementeringsfiler 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 input mekanisme er en ganske complex som den læser en 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 via Java Native Interface og for nylig Java Native Access
Hukommelsesstyring Tilgængelig for programmør Systemstyret
Rothierarki C ++ der er ikke et sådant rodhierarki. C ++ understøtter både proceduremæssig og objektorienteret programmering; derfor kaldes det et hybrid sprog. Java er et rent objektorienteret programmeringssprog. Det er. Hvorfor det følger enkeltrodshierarki.
Bedste funktioner C ++ understøtter objektorienterede funktioner Procedureprogrammeringsfunktioner. Java understøtter automatisk affaldsindsamling. Det understøtter ikke destruktorer, som C++ gør.
Gå til erklæring C++ har en goto-sætning. 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++ giver multipleInheritance. Nøgleordet virtuel bruges til at løse problemer under multipleinheritation, hvis der er nogen. Java giver ikke multipel arv.
Opløsning af omfang operaTor C++ har scope-opløsning 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 scope-opløsning operaTor (: :) i 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 operafor overbelastning Java understøtter kun metodeoverbelastning. Det giver ikke støtte til operafor overbelastning.
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 Virtual Machine (JVM). Det vil køre uden behov for genkompilering.
Registrering af kørselsfejl I C++ er det programmørens ansvar at kontrollere fejlene. Det er systemets ansvar at kontrollere fejl i programmet.
Pointer C ++ understøttelsesmarkører. Java tilbyder kun begrænset support til markører.
Struktur Det understøtter strukturer. Det understøtter ikke strukturer.
Fagforeninger C ++ understøtter fagforeninger. Java understø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.