Vergleich Java — C++ (1/4) Vergleich Java — C++ (2/4) Vergleich

Werbung
Vergleich Java — C++ (1/4)
Vergleich Java — C++ (2/4)
Was gibt es alles in C++, was sich in Java nicht
wiederfindet?
Was gibt es dafür in Java, was sich in C++ nicht
findet?
• keinen Präprozessor
• Modularisierung mittels Paketen ("packages")
• keine Präprozessor-Anweisungen, also insbesondere kein "#include"
• Importieren von Paketen und Klassen
• keine globalen Funktionen
• keine Zeigertypen und Zeiger
• Java-Compiler arbeitet in zwei Durchläufen
("Pässen"). Das erlaubt beliebige Vorwärtsverweise.
• keine Aufzählungstypen
• automatische Freispeicherverwaltung
• keine vorzeichenlosen numerischen Datentypen
• ausschließlich Referenzen auf Objekte
• keine Strukturen und Varianten
("structs","unions")
• Unicode als Zeichensatz
• keine explizite Speicheranforderung und -freigabe
• "continue" und "continue label"
• keine parametrisierten Klassen (Templates)
• vollständig definierte Sprache
• keine Formatierung von Textausgaben
• viele (zur Sprache zugehörige) Klassenbibliotheken
• Definition von Schnittstellen
• kein Überladen von Operatoren
• "break" und "break label"
• plattformunabhängig
© H. Hansen
FHTW-Berlin
2003
© H. Hansen
FHTW-Berlin
2003
Vergleich 1/4
Vergleich Java — C++ (3/4)
Zusammenfassung von Unterschieden
Vergleich 2/4
Vergleich Java — C++ (4/4)
Zusammenfassung von Unterschieden
Konzept
Konzept
Java
C/C++
umfangreich
Klassenbibliotheken
Felder (Arrays)
echte Felder mit Prüfung
der Feldgrenzen
Zeiger
Boolean
ist Basisdatentyp
muß explizit definiert werden
Char
16-Bit Unicode Zeichensatz
1 Byte
Char-Arrays
String- bzw. StringbufObjekte
Feld von Bytes
null
ist Literal (Schlüsselwort)
muß definiert werden
Speicherverwaltung
automatische Garbagecol- explizite Freigabe
lection
Threads
vorhanden
nicht in der Sprache vorhanden
Mehrfachvererbung
über Schnittstellen:
class a implements b
direkt
Einbinden anderer Programmkomponenten
import von Paketen oder
Klassen
#include "Datei"
Modularisierung Klassen und Pakete
von Programmen
viele beliebig kombinerwenige einfache
bare spezialiserte Klassen Klassen
Laufzeitinformation
Reflexion
FHTW-Berlin
C/C++
wenige Klassen
im Standard definiert
keine bzw. mittels
#include
Ein- und Ausgabe
© H. Hansen
Java
gehören zur Sprache
im Standard
wahrsch. vorhand.
2003
Vergleich 3/4
© H. Hansen
FHTW-Berlin
2003
Vergleich 4/4
Herunterladen