Vergleich Java — C++ (1/4) - techfak.uni-bielefeld.decfroehli/Vergleich.pdf · Was gibt es alles...

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

Transcript of Vergleich Java — C++ (1/4) - techfak.uni-bielefeld.decfroehli/Vergleich.pdf · Was gibt es alles...

Page 1: Vergleich Java — C++ (1/4) - techfak.uni-bielefeld.decfroehli/Vergleich.pdf · Was gibt es alles in C++, was sich in Java nicht wiederfindet? •keinen Präprozessor •keine Präprozessor-Anweisungen,

© H. Hansen FHTW-Berlin 2003

Vergleich 1/4

Was gibt es alles in C++, was sich in Java nicht wiederfindet?

• keinen Präprozessor

• keine Präprozessor-Anweisungen, also insbe-sondere kein "#include"

• keine globalen Funktionen

• kein Überladen von Operatoren

• keine Zeigertypen und Zeiger

• keine Aufzählungstypen

• keine vorzeichenlosen numerischen Datentypen

• keine Strukturen und Varianten ("structs","unions")

• keine explizite Speicheranforderung und -freigabe

• keine parametrisierten Klassen (Templates)

• keine Formatierung von Textausgaben

Vergleich Java — C++ (1/4)

© H. Hansen FHTW-Berlin 2003

Vergleich 2/4

Was gibt es dafür in Java, was sich in C++ nicht findet?

• Modularisierung mittels Paketen ("packages")

• Importieren von Paketen und Klassen

• Definition von Schnittstellen

• Java-Compiler arbeitet in zwei Durchläufen ("Pässen"). Das erlaubt beliebige Vorwärtsver-weise.

• automatische Freispeicherverwaltung

• ausschließlich Referenzen auf Objekte

• Unicode als Zeichensatz

• "break" und "break label"

• "continue" und "continue label"

• vollständig definierte Sprache

• viele (zur Sprache zugehörige) Klassenbiblio-theken

• plattformunabhängig

Vergleich Java — C++ (2/4)

© H. Hansen FHTW-Berlin 2003

Vergleich 3/4

Konzept Java C/C++

Felder (Arrays) echte Felder mit Prüfung der Feldgrenzen

Zeiger

Boolean ist Basisdatentyp muß explizit defi-niert werden

Char 16-Bit Unicode Zeichen-satz

1 Byte

Char-Arrays String- bzw. Stringbuf-Objekte

Feld von Bytes

null ist Literal (Schlüsselwort) muß definiert wer-den

Speicherverwal-tung

automatische Garbagecol-lection

explizite Freigabe

Threads vorhanden nicht in der Spra-che vorhanden

Mehrfachverer-bung

über Schnittstellen: class a implements b

direkt

Einbinden ande-rer Programm-komponenten

import von Paketen oder Klassen

#include "Datei"

Modularisierung von Programmen

Klassen und Pakete keine bzw. mittels #include

Ein- und Aus-gabe

viele beliebig kombiner-bare spezialiserte Klassen

wenige einfache Klassen

Laufzeitinforma-tion

Reflexion im Standard wahrsch. vorhand.

Vergleich Java — C++ (3/4)Zusammenfassung von Unterschieden

© H. Hansen FHTW-Berlin 2003

Vergleich 4/4

umfangreich Klassenbibliothe-ken

gehören zur Sprache wenige Klassen im Standard defi-niert

Konzept Java C/C++

Vergleich Java — C++ (4/4)Zusammenfassung von Unterschieden