Er zijn veel verschillen en overeenkomsten tussen de C++-programmering taal en Java . Hieronder vindt u een lijst met de belangrijkste verschillen tussen C++ en Java:
Vergelijkingsindex | C++ | Java |
---|---|---|
Platform-onafhankelijk | C++ is platformafhankelijk. | Java is platformonafhankelijk. |
Hoofdzakelijk gebruikt voor | C++ wordt voornamelijk gebruikt voor systeemprogrammering. | Java wordt voornamelijk gebruikt voor het programmeren van applicaties. Het wordt veel gebruikt in Windows-gebaseerde, webgebaseerde, zakelijke en mobiele applicaties. |
Ontwerpdoel | C++ is ontworpen voor het programmeren van systemen en applicaties. Het was een uitbreiding van de C-programmeertaal . | Java is ontworpen en gemaakt als tolk voor afdruksystemen, maar werd later uitgebreid als ondersteunend netwerkcomputergebruik. Het is ontworpen om gemakkelijk te gebruiken en toegankelijk te zijn voor een breder publiek. |
Ga naar | C++ ondersteunt de goto-instructie. | Java ondersteunt de goto-instructie niet. |
Meerdere erfenissen | C++ ondersteunt meervoudige overerving. | Java ondersteunt geen meervoudige overerving via klasse. Dit kan worden bereikt door gebruik te maken van interfaces in Java . |
Overbelasting van de machinist | C++ ondersteunt overbelasting van de operator . | Java ondersteunt geen overbelasting van operators. |
Wijzers | C++ ondersteunt verwijzingen. Je kunt een pointerprogramma schrijven in C++. | Java ondersteunt pointer intern. U kunt het pointerprogramma echter niet in Java schrijven. Het betekent dat Java beperkte ondersteuning voor aanwijzers in Java heeft. |
Samensteller en tolk | C++ gebruikt alleen een compiler. C++ wordt gecompileerd en uitgevoerd met behulp van de compiler die de broncode omzet in machinecode. C++ is dus platformafhankelijk. | Java gebruikt zowel compiler als interpreter. De Java-broncode wordt tijdens het compileren omgezet in bytecode. De tolk voert deze bytecode tijdens runtime uit en produceert uitvoer. Java wordt daarom geïnterpreteerd en is daarom platformonafhankelijk. |
Oproep op waarde en Oproep op referentie | C++ ondersteunt zowel call by value als call by reference. | Java ondersteunt alleen bellen op waarde. Er is geen call by reference in Java. |
Structuur en Unie | C++ ondersteunt structuren en vakbonden. | Java ondersteunt geen structuren en vakbonden. |
Draadondersteuning | C++ heeft geen ingebouwde ondersteuning voor threads. Het is afhankelijk van bibliotheken van derden voor threadondersteuning. | Java is ingebouwd draad steun. |
Documentatie commentaar | C++ ondersteunt geen documentatieopmerkingen. | Java ondersteunt documentatiecommentaar (/** ... */) om documentatie voor de Java-broncode te maken. |
Virtueel trefwoord | C++ ondersteunt een virtueel trefwoord, zodat we kunnen beslissen of we een functie al dan niet willen overschrijven. | Java heeft geen virtueel trefwoord. We kunnen standaard alle niet-statische methoden overschrijven. Met andere woorden: niet-statische methoden zijn standaard virtueel. |
niet-ondertekende rechterverschuiving >>> | C++ ondersteunt de operator >>> niet. | Java ondersteunt een niet-ondertekende rechtse shift >>>-operator die bovenaan nul vult voor de negatieve getallen. Voor positieve getallen werkt het hetzelfde als de operator >>. |
Erfenisboom | C++ creëert altijd een nieuwe overervingsboom. | Java gebruikt altijd één overervingsboom omdat alle klassen het kind zijn van de Object-klasse in Java. De Object-klasse is de root van de erfenis boom in Java. |
Hardware | C++ staat dichter bij hardware. | Java is niet zo interactief met hardware. |
Object-georiënteerd | C++ is een objectgeoriënteerde taal. In de C-taal is een enkele wortelhiërarchie echter niet mogelijk. | Java is ook een objectgeoriënteerd taal. Alles (behalve fundamentele typen) is echter een object in Java. Het is een enkele hoofdhiërarchie, omdat alles wordt afgeleid van java.lang.Object. |
Opmerking
- Java ondersteunt geen standaardargumenten zoals C++.
- Java ondersteunt geen headerbestanden zoals C++. Java gebruikt het trefwoord import om verschillende klassen en methoden op te nemen.
C++ Programmavoorbeeld
Bestand: main.cpp
#include using namespace std; int main() { cout << 'Hello C++ Programming'; return 0; }
Uitgang:
Hello C++ Programming
Java-programmavoorbeeld
Bestand: Simple.java
class Simple{ public static void main(String args[]){ System.out.println('Hello Java'); } }
Uitgang:
Hello Java