» Tutorial / Java Grundlagen / Einführung

Das erste Kapitel wird Sie mit wichtigen Informationen rund um Java bekannt machen. So können Sie sich einen schnellen Überblick über die wichtigsten Features dieser neuen Sprache und ihrem Potential verschaffen.


» Informationen über den Autor nach oben «

Bevor es los geht, möchte ich mich Ihnen als Autor dieses Projekts kurz vorstellen. Mein Name ist Hendrik Engler und als Abiturient beschäftige ich mich in meiner Freizeit intensiv mit der Computerprogrammierung. Aus diesem Grund habe ich das Projekt von ProgrammersBase ins Leben gerufen, um sowohl Anfängern als auch professionellen Programmierern eine Quelle für diverse Referenzen und Tutorials an die Hand geben zu können.

Dieser Teil meines Projekts beschäftigt sich ausgiebig mit der Java - Programmierung. Es gibt Tutorials zu den verschiedensten und selbst anspruchsvollsten Themen, sowie einer umfangreichen Indexierung und einer Referenz der Java - Klassen. Die von mir zur Verfügung gestellten Informationen sind frei verwendbar und ausschließlich von mir erstellt wurden. Wer mehr über mich und die Inhalte meines Projekts in Erfahrung bringen möchte, der sollte unsere Hauptseite besuchen.

» ProgrammersBase.NET


» Einsatz dieses Tutorials nach oben «

Dieses Tutorial dient als Einführung in die grundlegenden Sprachelemente von Java. Dabei sind keinerlei Vorkenntnisse erforderlich. Allerdings sollten Sie ein gewisses Maß an Interesse und diverse Grundkenntnisse in der Computertechnologie mitbringen, schließlich erlernt man nicht jeden Tag eine so fortgeschrittene Programmiersprache, und gewiß ist es kein Kinderspiel. Programmierer mit Erfahrungen in C++ oder anderweitigen, vielleicht sogar objektorientierten, Programmiersprachen hingegen werden viele neue Kenntnisse hinzugewinnen.

Wichtig ist, daß in vielen Teilkapiteln Teile aus Java genutzt werden, die wir vorher noch nicht behandelt haben. Dennoch sollten Sie weiterlesen, denn eben diese Konstrukte werden Ihnen später erklärt werden.


» Allgemeines zu Java nach oben «

Bei Java handelt es sich um eine vollständig objektorientierte Programmiersprache, welche gerade für die Programmierung betriebbsystemübergreifender Software und den Einsatz im Internet prädestiniert ist. Java ist brandneu und birgt ein ungeheures Potential an Werkzeugen. Wenn auch nicht als Nachfolger für so erfolgreiche Sprachen wie C++ oder Delphi gedacht, ist es dennoch mit erstaunlich leistungsfähigen Sprachelementen durchdacht und konzipiert worden. Zweifellos tritt Java einen Siegeszug in der professionellen Programmierung an und wird auch in den kommenden Jahren die Zukunft für sich behaupten können.


» Voraussetzungen nach oben «

Wer unter Java erste Erfolge verbuchen möchte, der wird sich einer entsprechenden Entwicklungsumgebung bedienen müssen. Dabei handelt es sich um eines der zahlreich angebotenen Softwarepakete, bestehend aus Compiler und diversen Bibliotheken, sowie Dokumentationen und Sprachspezifikationen. Allerdings möchten wir hier an dieser Stelle nicht näher darauf eingehen, denn entsprechende Software ist im Internet fast überall frei erhältlich. Zu empfehlen sind natürlich nach wie vor die Produkte professioneller Firmen wie Borland, Microsoft oder Sun. Sobald sie einen entsprechenden Compiler erworben und diesen korrekt auf ihrem System installiert haben, können Sie alle die von uns programmierten Beispiele frei nachvollziehen.


» geschichtliche Entwicklung nach oben «

Java entstand, anders als bei anderen Programmierpsrachen, im Zuge einer recht turbulenten Entwicklungsgeschichte.

Im Jahre 1991 schrieb der Programmierer Patrick Naughton an den Sun Chef Scott McNealy einen Brief, in dem er verkündete, er wolle das Unternehmen in den nächsten Tagen verlassen. Daraufhin bot man ihm die Chance, seine Gründe darzulegen. Bereits wenige Tage später entwarf Naughton ein Script über die Probleme innerhalb der Firma und mögliche Konzepte zur Lösung. Er warf Sun vor, sich durch die komplizierte Software, zu hohe Kosten der Rechnersysteme, nicht zeitgemäßer Schnittstellen und Ignoranz der Kunden sich immer weiter vom Wettbewerb zu entfernen. Er forderte Software und Hardware, welche auch vom durchschnittlichen User verwendet werden konnte.

Bereits wenige Tage später begann er mit dem "Green Project", welches die Marktanalyse durchführen sollte. Nach einjähriger Entwicklungszeit schuf man ein Gerät mit der Bezeichnung "Star Seven", welches auf grund spezieller Hardware und einer eigens konzipierten Programmiersprache fähig war, auch auf allen anderen Gebieten moderner Haushaltsgeräte Einsatz zu finden. Somit war eine Schnittstelle geschaffen worden, die eine einheitliche Kontrolle und Steuerung aller nur denkbaren Geräte ermöglichte.

Die Sun begründer Bill Joy und Scott McNealy waren derart begeistert, das eine eigene Firma unter dem Namen "First Person" ins Leben gerufen wurde. 70 Mitarbeiter beschäftigten sich fortan mit der Entwicklung weiterer Prototypen bis zu einer möglichen Marktreife. Leider scheiterten alle Versuche, Parterschaften und Verträge für eine kommerzielle Vermarktung unter Dach und Fach zu bringen, so dass bereits 1994 die Arbeit eingestellt wurde.

Erst Bill Joy wagte einen letzten Versuch, als er das Potential der neuen und plattformunabhängigen Technologie erkannte. Das Internet nahm bereits eine kritische Größe an und erfreute sich zunehmender Beliebtheit. Hier waren die Ergebnisse jahrelanger Forschung des "Green Projects" zu Hause. Aus dieser Initiative heraus entwickelte Naughton fortan mit der für "Star Seven" entwickelten Programmiersprache Oak eine Applikation, welche alle Möglichkeiten für die Nutzung im Web offenlegen sollte. Im Herbst 1994 wurde der Browser "WebRunner" fertiggestellt, welcher bereits Java - Programme und Applets auszuführen vermochte.

Oak wurde kurzerhand in Java umbenannt und weitere Entwickler wurden dem Team zugeteilt. Fortan wurde ein eigens konzipierter Compiler programmiert, welcher 1995 auf der SunWorld unter der Bezeichnung "HotJava" vorgestellt wurde. Das offizielle Geburtsdatum der Java Programmiersprache wurde an dem Tag manifestiert, als der Netscape Begünder Marc Andreesen am 23. Mai 1995 verkündete, er werde die neue Technologie lizensieren und in der neuen Version 2 des Netscape Navigators erstmalig zum Einsatz bringen.

Nach weiteren Monaten der Entwicklung wurde eine der ersten Java Compiler in Form des JDK (Java Development Kit) fertiggestellt. Das Green Team formierte daraufhin die Firma JavaSoft, welche von Sun für die Weiterentwicklung beauftragt wurde. In den nächsten Monaten erfuhr das Projekt einen technologischen Aufschwung, denn auch große Branchen und Firmen wie Borland, Microsoft, Oracle, Netscape, Symantec und IBM programmierten mittlerweile für Java.

Eine große Anzahl neuer Technologien wurden Java zu Teil, so zum Beispiel der Datenbankzugriff per JDBC (Java Database Connectivity), JavaBeans und diverse API (Application Programming Interface) Schnittstellen. Auch professionelle Entwicklungsumgebungen von Borland und Microsoft wurden zur Verfügung gestellt. Das JDK wird seitdem durch neue Bibliotheken erweitert und in der Perfomance noch näher an C++ herangeführt.


» Sprachmerkmale nach oben «

Viele wichtige Bezeichnungen ranken sich um den Mythos Java. Alle beschreiben einen Teilaspekt der Features von Java. Hier finden Sie eine Liste der mit Java stark assoziierten Begriffe.


» architekturneutral / plattformunabhängig

Auf grund der Tatsache, dass der Java Compiler Bytecode erzeugt, der auf allen Systemen und jeder Hardware identisch durch den Interpreter übersetzt wird, sind Java - Programme theoretisch auf jedem Betriebssystem lauffähig. Ausnahmen bestätigen die Regel. Nützlich zu wissen ist, dass der erzeugte Binärcode auf jeder Plattform durch die virtuelle Java Maschine (JVM) zur Laufzeit extra übersetzt wird.

» einfach

Obwohl Java viele der Sprachkonzepte von C und C++ übernommen hat, wurden dennoch viele fehleranfällige Datails entfernt, wodurch die Programmierung komplexer Systeme vereinfacht wird.

» dezentral / verteilt

Java ist stark durch den Charakter von Client - Server - Anwendungen geprägt, was sich in den zahlreichen Bibliotheken und dem Gesamtaufbau dieser Sprache widerspiegelt.

» dynamisch

Hunderte von Packages und Klassen gehören zum Lieferumfang dieser modernen Sprache. Dennoch wird Java nicht durch das Hinzufügen fremder Bibliotheken abhängig und ist immer auf den Basisklassen lauffähig. Des weiteren basiert Java fast vollständig auf der Verwendung dynamischen Speichers, welcher optimal verwaltet wird.

» interpretiert

Alle erzeugten Programme werden lediglich in einem festen Bytecode kompiliert. Erst bei der Ausführung wird dieser durch die JVM (Java Virtual Machine) interpretiert und in ein passendes Format des Zielsystems übersetzt. Somit laufen Interpretation und Kompilierung als paralleler Prozess ab.

» klein

Java benötigt zur Ausführung diverser Applets oder Applikationen lediglich wenige KB Arbeitsspeicher. Je nach Umfang und Funktionalität der entsprechenden Software schwanken die Anforderungen zwischen 40 und 200 KB.

» leistungsfähig

In der Performance steht Java modernen Sprachen wie C++ oder Delphi in fast nichts mehr nach. Durch die immer schnelleren Entwicklungen neuer Umgebungen und der steigenden Performance sind Java - Anwendungen für den Großteil aller Gebiete ausreichend. Die Zukunft wird jedoch auch die letzten Schwächen ausmerzen.

» multithreaded

Die neuen Konzepte von Java erlauben es, viele Prozesse quasi parallel ablaufen zu lassen, wodurch sich ein steigendes Laufzeitverhalten beobachten lässt. Die Vorteile dieser Technologie sind allerdings auch stark vom zugrundeliegenden System abhängig.

» objektorientiert

Jede Aufgabe wird in Java in Klassen verpackt. Externe Definitionen sind nicht zulässig. Des weiteren erlaubt Java als streng objektorientierte Sprache die Vererbung, aber keine Mehrfachvererbung. Diese wurde durch das Konzept der Interfaces abgelöst.

» portierbar

Im Gegensatz zu anderen Sprachen sind die Wertebereiche der internen Datentypen fest vorgeschrieben. Dadurch ergeben sich keine Differenzen auf unterschiedlichen Systemen und die Applikationen werden in der Regel exakt übersetzt. Spezifische Details einer Umgebung können somit vernachlässigt werden.

» sicher

Vorallem im Speichermanagement von Java liegen viele der Stärken im Sicherheitssystem. Jegliche Speicherzugriffe werden durch den Interpreter unterbunden und verhindern somit ungewollte Manipulationen. Da der zugrundeliegende Bytecode erst zur Laufzeit vollständig interpretiert wird, kann auch dieser besonders einfach auf Fehler hin kontrolliert werden.

» stabil / robust

Java zeichnet sich vorallem durch das Prüfen aller Typkonvertierungen aus, wodurch bereits viele Laufzeitfehler ausgeschaltet werden können. Auch der hohe Sicherheitsstandard der Speicherverwaltung macht Java zu eine der wohl robustesten und sichersten Sprache ihrer Zeit. Hier arbeiten Interpreter, Compiler und Linken Hand in Hand.

» typisiert

Alle Datentypen haben feste Längen und Wertebereiche, vollkommen unabhängig vom verwendeten System. Daher können keine betriebssystemspezischen Differenzen auftreten und das Laufzeitverhalten negativ beeinflussen.


» Vergleich zu C++ nach oben «

C++ vererbte Java viele seine Merkmale und einen Großteil der Leistungsfähigkeit. Auch wenn weder C oder C++ als direkter Vorfahr dienen sollten, so hatten sich die Entwickler dennoch an Vorteilen und Nachteilen dieser Sprache orientiert. Allen Umsteigern von C++ auf Java wird früher oder später auffallen, dass es einige der bekannten Konzepte nicht mehr gibt, da diese als fehlerträchtig angesehen wurden, was man allerdings nicht auf alle Sprachelemente hin verallgemeinern kann. Folgende Elemente wurden entfernt.


» Arrays

Array wurden vollständig entfernt. Sie treten nunmehr als Objekt der Java - Bibliothek auf, um ein hohes Maß an Typsicherheit zu gewärleisten. Außerdem stehen fortan viele interessante Methoden zur Verfügung, um das Array zu verwalten.

» Aufzählungen

Sie gehören nicht mehr zur Sprachspezifikation. Oft gab es Probleme in der Verwendung und Portierung derartiger Konstrukte. Ab sofort werden sie in speziellen Objekten abgebildet.

» Funktionen

In Java wird die gesamte Funktionalität der Anwendung in Klassen verpackt. Daher sind externe Elemente nicht mehr möglich. Das Konzept der Funktionen existiert also ausschließlich in Form der Methoden einer Klasse.

» Konzept der Mehrfachvererbung

Aus der Erfahrung heraus war man sich vieler Probleme der bisherigen Mehrfachvererbung bewußt. Um Java damit nicht belasten zu müssen, ist es lediglich möglich, eine einzige Superklasse zu haben. Weitere Funktionalitäten werden durch die Tatsache vererbt, das dafür beliebig viele Interfaces abgeleitet und implementiert werden können.

» Strings

Wie die Arrays, so werden fortan auch alle Arten von Zeichenketten in einem entsprechenden Objekt verwaltet. Dieses bietet eine große Anzahl an nützlicher Funktionalität und optimalem Speichereinsatz.

» Strukturen

In C++ entsprachen Strukturen exakt den Klassen, mit dem einzigen Unterschied, dass dort alle Elemente implizit als öffentlich angesehen wurden. Die Entwickler ersparten sich diesen Overhead und eliminierten die Strukturen aus der Spezifikation.

» Typdefinitionen

Nunmehr gibt es keine Möglichkeit mehr, eigene Datentypen in Form von Aufzählungen zu definieren. Dies entspricht dem Ansatz der Typisierung unter Java, da es sonst zu Differenzen auf anderen Systemen kommen könnte.

» Templates

Die Definition fester Schablonen für Funktionen, Strukturen oder Klassen ist ebenfalls ausgelassen worden, da es doch des öfteren zu Fehlern bei der Übergabe von Parametern anhand deren Typen kam. Leider verabschiedet sich dadurch ein Konzept, das eine Menge Overhead vermieden hätte.

» Überladen von Operatoren

Die dadurch bisher recht stilreiche und bequeme Implementierung von Funktionen ist seit Java ausgeschlossen. Derartige Funktionalitäten sollten wohl besser in entsprechenden Methoden gepackt werden.

» Unions

In C++ wurden sie nur recht selten verwendet, da mittlerweile kein Mangel an genug Speicher auf modernen Systemen mehr zu verzeichnen ist. Daher wurden sie auch für Java irrelevant.

» Zeiger

Das interne Speichermanagement von Java verwaltet alle instanziierten Objekte selbständig. Daher wurde das oft zu Fehlern führende Konzept der Zeiger vollständig außen vor gelassen.


» Vorteile von Java nach oben «

Nach den letzten Punkten lassen sich bereits ganz klar einige der Vorteile von Java gegenüber anderen objektorientierten Programmiersprachen zusammentragen. Eine der größten Stärken von Java liegt im Konzept der Plattformunabhängigkeit. Die Fähigkeit auf nahezu jedem Betriebssystem einsetzbar zu sein, prädestiniert Java für den Einsatz im Internet, wo exakt diese Technolgie angesiedelt ist. Dutzende verschiedener Systeme im Internet lassen kein Ende der Vielfältigkeit erkennen. Auch die Verwandschaft zu C++ birgt ein hohes Potential an Funktionalität und Performance. Die verwendete Syntax erlaubt vielen Programmierern einen leichten Umstieg. Ansonsten gesellen sich die Vorteile im Sicherheitssektor und Speichermanagement zur Reihe klarer Dominanz in der systemübergreifenden Programmierung. Auch die Netzwerkprogrammierung und der Zugriff auf Ressourcen im Internet werden durch Java revolutioniert und stark vereinfacht.


» häufige Vorurteile nach oben «

Trotz der euphorischen Haltung vieler Programmierer und User zu Java kursieren dennoch weit verbreitete Meinungen, die mit Java allerdings nichts zu tun haben.


» Java ist JavaScript

Die einzige Gemeinsamkeit liegt in der an Java angelehnten Syntax. Ansonsten handelt es sich bei JavaScript um eine reine Script - Sprache, welche bei weitem nicht an die Möglichkeiten von Java herankommt. Außerdem wird sie stets vom Browser interpretiert und erlaubt nicht die Programmierung von Applets oder Applikationen, sondern wird vorrangig zur Erweiterung von Webseiten eingesetzt.

» Java ist einfach zu erlernen

Diese Aussage lässt sich nicht grundlegend mit ja oder nein beantworten. Die Dauer und Intensität des Studiums von Java basiert immer auf den bereits vorhandenen Kenntnissen. Der Weg für Anfänger, die zum ersten mal eine Programmiersprache erlernen, ist bei weitem steiniger, denn neue Konzepte müssen verstanden und angewandt werden. Alle diejenigen, die bereits eine Sprache wie C++ oder Delphi beherrschen, können sich, je nach Wissensstand, Java in viel kürzerer Zeit aneignen. Das Studium der diversen Bibliotheken hingegen wird sich für beide Seiten als relativ einfach erweisen, denn diese wurden möglichst einfach und logisch konzipiert.

» Java ist vollständig portabel

Java ist bei weitem portabler als C oder C++. Das rührt daher, das Java vollständig typisiert entworfen wurde und auf einer grundlegenden Basis fester Bibliotheken aufbaut. Auch das Entfernen fehleranfälliger Sprachelemente trug seinen Teil dazu bei. Dennoch sind kleinere Fehler und Nachbesserungen nie ausgeschlossen. Der Hauptteil der Portabilität wird immerhin durch die Generierung von Bytecode und der konsequenten Nutzung des Interpreters der JVM getragen.

» Java ist langsam

Diese Aussage hat sich in der Vergangenheit mittlerweile mehrfach relativiert. Derartige Probleme traten vorallem in der Anfangsphase von Java auf und auch heute noch können, durch die Tatsache das der Bytecode erst zur Laufzeit interpretiert und ausgeführt wird, Java Programme weitaus langsamer laufen. Durch die steigende Performance der verwendeten Compiler und der erhöhten Leistungsfähigkeit der heutigen Computersysteme aber ist der deutliche Geschwindigkeitsvorteil der C++ Programme kaum noch messbar.

» Java ist nicht für große Projekte geeignet

Dieses Vorurteil ist eines der am weitesten verbreiteten. Es resultiert vorallem daher, da zu Beginn Java Programme und Applets lediglich zu Demonstrationszwecken geschrieben wurden. Große Anwendungen wurden auf Grund der ständigen Weiterentwicklung zu diesem Zeitpunkt noch nicht entwickelt. Auch das grafische Design litt zu Anfang unter vielen Einschränkungen und Fehlern. Seit Swing gehören diese Gegebenheiten allerdings der Vergangenheit an. Java ist mittlerweile so ausgereift, dass sich vorallem Client - Server - Anwendungen und Internetapplikationen nahezu ohne Einschränkungen und in Rekordzeit erstellen lassen.

» Java ist eine einfache Programmierumgebung

Die Verwendung der nativen Compiler wie das JDK sind alles andere als einfach. Die Verwendung der vielen Kommandozeilentolls fällt oft schwer und ist zudem noch sehr fehlerträchtig. Die konsequente Nutzung grafischer Compiler von diversen Herstellern macht das Entwickeln jedoch schon weitaus einfacher. Letztlich raten wir zum Einsatz entsprechender Software, die einem zudem noch eine ganze Menge an Arbeit und Ärger abnehmen kann.

» Java ist eine universelle Programiersprache

Rein theoretisch stimmt das und auf lange Sicht dürfte Java dieses Ziel auch erreichen. Dennoch gibt es einige nicht zu vernachlässigende Aspekte die dagegen sprechen könnte. Java hat nach wie vor geringe Performancemängel und auch die exakte Portierung auf alle Systeme ist noch nicht hundertprozentig erreicht worden, zumal man noch mit inkompatiblen Dateiformaten zu kämpfen hat.

» Java ist einfach eine weitere Programiersprache

Sowohl als auch. Unter Java zu programmieren kann durchaus seine Vorzüge und Erfolgserlebnisse haben. Es gab viele Sprachen die sich nicht durchsetzen konnten, und es gab Sprachen die sich trotz ihrer Mängel und Fehler (C++ und Delphi) größter Beliebtheit erfreuen. Auch Java schien vorerst zum Scheitern verurteilt gewesen zu sein, dabei war es nie als vollwertige Programmiersprache für Computeranwendungen gedacht gewesen.

» Java ist durch seine Applets ein Sicherheitsrisiko

Es gibt viele Meinungen zu Fehlern bei Java. Allerdings wurden nie größere Fehler im Sicherheitsmechanismus der Applets gefunden, als doch vielmehr in der Implementierung von Java. Derartige Fehler wurden immer so schnell wie möglich behoben und echte Risiken gibt es bei der Verwendung von Applets nicht. Kaum eine Technologie war bisher so sicher wie diese.

» Java ist die Revolution der Netzwerkprogrammierung

Auch dazu hat Java das Potential. Ein großes Augenmerk wurde schließlich auf den Einsatz im Internet und in großen Netzwerken gelegt. Die Java - Bibliotheken erlauben das schnelle Programmieren von Netzwerkapplikation, welcher in anderen Sprachen immer als sehr schwierig angesehen wurden. Java bietet dafür eine der besten Voraussetzungen.


» Applets und Applikationen nach oben «

Seit der Einführung Javas gibt es einen wichtigen Unterschied zweier Arten von Anwendungen zu klären. Es ist sowohl möglich, vollständige Applikationen zu programmieren, als auch kleine Applets. Dabei handelt es sich um eine Art abgespecktem Programm, das hauptsächlich auf Webseiten zum Einsatz kommt. Es birgt nahezu die gleichen Möglichkeiten diverser Anwendungen, wird aber immer über einen Browser geladen und von dessen Javainterpreter ausgeführt. Des weiteren unterliegen Applets gewissen Einschränkungen, wenn es darum geht, sie über das globale Netzwerk auszuführen. So ist ein Zugriff auf lokale Datenträger oder den Systemspeicher vollkommen ausgeschlossen. Applikationen hingegen sind Stand - Alone - Programme, welche über die JVM geladen werden, sie bedürfen keinem Container in Form eines Browsers oder Applet - Viewers.

Zugriffsbeschränkungen für Applets


» Funktionsweise der Compiler nach oben «

Der letzte Teil unserer Einführung soll uns kurz mit der Funktionsweise des Java - Compilers beschäftigen. So erhalten Sie einen Überblick über den Sinn und die Arbeitsweise der Java - Technologie.


» Compiler

Unsere erste Station ist der Compiler. Seine Aufgabe ist es, den von Ihnen verfaßten Code zu kompilieren, sprich auf Fehler hin zu prüfen. Dabei wird sowohl die Syntax analysiert, als auch alle Typumwandlungen auf ihre Gültigkeit hin getestet. Der Stack wird dabei permanent überprüft um bereits vorzeitige Überläufe oder Unterläufe von Werten aufzudecken. Zuletzt generiert dieses Teilprogramm den entsprechend auszuführenden Bytecode.

» Debugger

Der Debugger geht mit dem Vorgang der Kompilierung einher. Er läuft parallel mit und bildet exakt das Teilmodul, welches die komplizierten Fehleranalysen durchführt.

» Bytecode

Der Bytecode enthält an sich alle wichtigen Anweisungen die benötigt werden, um das entsprechende Programm oder Applet auszuführen. Der Bytecode wird dazu plattformunabhängig generiert, da die eigentliche Interpretation ja erst auf dem Zielsystem durch die JVM durchgeführt wird.

» Interpreter

Die JVM bildet jeweils das letzte Teilprogramm, welches den Bytecode liest und die entsprechenden Anweisungen ausführt. Diese Phase bildet dann das sogenannte Laufzeitverhalten. Dabei werden aber auch weiterhin ständig Fehlertests durchgeführt, die eventuell auftretende Fehler abfangen und korrigieren, sofern das möglich ist.

Phasen eines Programmdurchlaufs


Kapitelübersicht nach oben Kapitel »