Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

C++ versus JAVA:wat is het verschil?

Wat is de C++-taal?

C++ is een computerprogrammeertaal die zowel de C-programmeertaal als Simula67 (eerste objectgeoriënteerde taal) bevat. C++ introduceerde het concept van klasse en objecten.

Het omvat taalfuncties op hoog en laag niveau. Het wordt dus gezien als een taal op gemiddeld niveau. Eerder heette het "C met klassen" omdat het alle eigenschappen van de C-taal had.

Wat is de Java-taal?

Java is een programmeertaal ontwikkeld door Sun Microsystems. Een klein softwareontwikkelingsteam ontwikkelde deze taal. Ze stonden bekend als het Groene Team, dat in 1991 de Java-taal initieerde.

Geschiedenis van C++

C++-taal is ontwikkeld door Bjarne Stroustrup van AT &T Bell Laboratories. Stroustrup was een groot voorstander van C en een bewonderaar van Simula67. Hij wilde het beste van beide talen combineren. Hij wilde een taal maken die objectgeoriënteerde programmeerfuncties ondersteunt en toch de kracht van C behoudt. Dit resulteerde in C++.

Geschiedenis van Java

De Java-taal heette aanvankelijk OAK. Oorspronkelijk werd het ontwikkeld voor het hanteren van apparaten en settopboxen. Oak was een enorme mislukking. Zo veranderde Sun in 1995 de naam in Java en wijzigde de taal om te profiteren van de ontluikende World Wide Web-ontwikkelingsactiviteiten.

Later, in 2009, nam Oracle Corporation Sun Microsystems over en nam het eigendom van twee belangrijke Sun-softwareactiva:Java en Solaris.

SLEUTELVERSCHIL:

  • C++ gebruikt alleen compiler, terwijl Java zowel compiler als interpreter gebruikt.
  • C++ ondersteunt zowel overbelasting van operators als overbelasting van methoden, terwijl Java alleen overbelasting van methoden ondersteunt.
  • C++ ondersteunt handmatig objectbeheer met behulp van nieuwe en verwijder-sleutelwoorden, terwijl Java een ingebouwde automatische afvalverzameling heeft.
  • C++ ondersteunt structuren, terwijl Java geen structuren ondersteunt.
  • C++ ondersteunt vakbonden, terwijl Java geen vakbonden ondersteunt.

Verschil tussen C++ en Java

Parameter C++ Java
Relatie Geen strikte relatie tussen klassenamen en bestandsnamen. In C++ worden headerbestanden en implementatiebestanden gebruikt voor een specifieke klasse. De strikte relatie wordt gehandhaafd, de broncode voor klasse PayRoll moet bijvoorbeeld in PayRoll.java staan.
Invoermechanisme I/O-instructies gebruiken in en cout, bijvoorbeeld in » x; cout« y; I/O-invoermechanisme is vrij complex omdat het één byte per keer leest (System.in). Uitvoer is eenvoudig, b.v. System.out.println(x);
Compiler en tolk C++ ondersteunt alleen compiler Java ondersteunt zowel compiler als interpreter
Compatibiliteit met andere talen Compatibel met C-broncode, behalve in enkele uitzonderlijke gevallen. Geen achterwaartse compatibiliteit met eerdere talen. De syntaxis wordt beïnvloed door C/C++.
Toegangscontrole en objectbeveiliging Flexibel model met constante bescherming beschikbaar Het omslachtige model stimuleert zwakke inkapseling.
Concept Schrijf eenmaal compileren overal Eén keer schrijven overal en overal uitvoeren
Ondersteuning voor programmeertype Laat zowel procedureel programmeren als objectgeoriënteerd programmeren toe. Ondersteunt objectgeoriënteerd programmeermodel.
Interface Laat directe oproepen naar systeembibliotheken toe. Alleen bellen via de Java Native Interface en recentelijk Java Native Access
Geheugenbeheer Toegankelijk voor programmeur Systeemgestuurd
Hoofdhiërarchie C++ er is geen dergelijke roothiërarchie. C++ ondersteunt zowel procedureel als objectgeoriënteerd programmeren; daarom wordt het een hybride taal genoemd. Java is een pure objectgeoriënteerde programmeertaal. Dat is. Waarom Het volgt een enkele wortelhiërarchie.
Beste eigenschappen C++ ondersteunt objectgeoriënteerde functies Procedurele programmeerfuncties. Java ondersteunt automatische garbagecollection. Het ondersteunt geen destructors zoals C++ dat doet.
Ga naar-instructie C++ heeft een goto-statement. Hoewel het niet ideaal is om een ​​goto-statement te gebruiken. Java heeft geen goto-statement. De zoekwoorden gekregen en const zijn gereserveerd, zelfs als ze niet worden gebruikt.
Meerdere overerving C++ biedt multipleInheritance. Het sleutelwoord virtueel wordt gebruikt om problemen op te lossen tijdens meervoudige overerving als die er zijn. Java biedt geen meervoudige overerving.
Operator voor bereikresolutie C++ heeft scope resolutie-operator (: :) die wordt gebruikt om een ​​methode buiten een klasse te definiëren en om toegang te krijgen tot een globale variabele binnen het bereik waar ook een lokale variabele met dezelfde naam bestaat. Geen operator voor bereikresolutie (: :) op Java. De methodedefinities moeten binnen een klasse voorkomen, dus er is geen scoperesolutie nodig.
Ondersteunende methode C++ ondersteunt zowel methode-overbelasting als operator-overbelasting Java ondersteunt alleen overbelasting van methoden. Het biedt geen ondersteuning voor overbelasting door de operator.
Draagbaarheid De broncode moet opnieuw worden gecompileerd voor het platform; daarom is de code niet draagbaar. Bytecode-klassen kunnen worden overgedragen naar platformspecifieke JVM's.
Semantiek typen Consistent tussen primitieve en objecttypes. Verschillen voor primitieve en objecttypes.
Bibliotheken Voornamelijk low-level functionaliteit Enorme lessen voor diensten op hoog niveau.
Runtime-foutdetectie Verantwoordelijkheid van de programmeur. Systeemverantwoordelijkheid.
Functies en gegevens Functies en gegevens kunnen bestaan ​​buiten elke klasse, globale en naamruimtebereiken zijn beschikbaar. Alle functies en gegevens bestaan ​​binnen klassen; pakket scope zijn beschikbaar.
Platform C++-programma's zijn platformafhankelijk. Ze moeten worden samengesteld voor een bepaald platform. Java-programma's zijn platformonafhankelijk. Java-programma's zijn geschreven voor Java Virtual Machine (JVM). Het zal draaien zonder dat hercompilatie nodig is.
Runtime-foutdetectie In C++ is het de verantwoordelijkheid van de programmeur om de fouten te controleren. Het is de verantwoordelijkheid van het systeem om fouten in het programma te controleren.
Aanwijzer C++ ondersteuningsaanwijzingen. Java biedt slechts beperkte ondersteuning voor pointers.
Structuur Het ondersteunt structuren. Het ondersteunt geen structuren.
Vakbonden C++ ondersteunt vakbonden. Java ondersteunt geen vakbonden.
Objectbeheer C++ ondersteunt handmatig objectbeheer met behulp van nieuwe en verwijderde trefwoorden. Java is zwaar afhankelijk van automatische garbagecollection. Het ondersteunt geen destructors.

Java

  1. Wat is er nieuw in de moderne C++ API
  2. Interface versus abstracte klasse in Java:wat is het verschil?
  3. Het verschil tussen een AC- en DC-generator
  4. Brownout versus Blackout:wat is het verschil?
  5. Thermoplastisch versus thermohardend plastic:wat is het verschil?
  6. DC versus AC-motor:wat is het verschil?
  7. Wat is het verschil tussen metaalfabricage en metaallassen?
  8. Staalhoek versus aluminium hoek:wat is het verschil?
  9. Puur versus schurend waterstraalsnijden - wat is het verschil?
  10. Ademlucht versus perslucht – wat is het verschil?
  11. PSI, PSIA en PSIG:wat is het verschil?