Java für Dummies. Alles-in-einem-Band
Java für Dummies. Alles-in-einem-Band
Bibliografische Information der Deutschen Nationalbibliothek
Die Deutsche Nationalbibliothek verzeichnet diese
Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de
abrufbar.
1. Auflage 2018
© 2018 WILEY-VCH Verlag GmbH & Co. KGaA, Weinheim
All rights reserved including the right of reproduction in whole or in part in any form. This translation published by arrangement with John Wiley and Sons, Inc.
Alle Rechte vorbehalten inklusive des Rechtes auf Reproduktion im Ganzen oder in Teilen und in jeglicher Form. Diese Übersetzung wird mit Genehmigung von John Wiley and Sons, Inc. publiziert.
Wiley, the Wiley logo, Für Dummies, the Dummies Man logo, and related trademarks and trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries. Used by permission.
Wiley, die Bezeichnung »Für Dummies«, das Dummies-Mann-Logo und darauf bezogene Gestaltungen sind Marken oder eingetragene Marken von John Wiley & Sons, Inc., USA, Deutschland und in anderen Ländern.
Das vorliegende Werk wurde sorgfältig erarbeitet. Dennoch übernehmen Autoren und Verlag für die Richtigkeit von Angaben, Hinweisen und Ratschlägen sowie eventuelle Druckfehler keine Haftung.
Coverfoto: nerudol – fotolia.com
Korrektur: Petra Heubach-Erdmann
Print ISBN: 978-3-527-71450-6
ePub ISBN: 978-3-527-81307-0
mobi ISBN: 978-3-527-81306-3
In diesem Buch lernen Sie, warum Nashörner kein Bankkonto haben, dass Katzen besser kratzen, als sich zu übergeben, wie man Bauklötze arrangiert, dass Stringtangas gar nicht so erotisch sind, und dann noch die Programmiersprache Java. Sie werden Programme erstellen, die das Übergewicht des Autors quantifizieren, Schiffe im Bermuda-Dreieck verstecken, den Kiosk von Superhelden verwalten und die Almhütten von Heidi vermieten.
Wir fangen also bei null an. Sie werden Variablen, Schleifen und Methoden kennenlernen. Wir werden in die wunderbare Welt der objektorientierten Programmierung eintauchen und Sie können beim nächsten Stammtisch endlich mit Wörtern wie Polymorphie, Interface und Exception protzen. Aber wir werden dabei noch nicht stehen bleiben.
Die Welt der grafischen Oberflächen ist viel zu attraktiv, um sie zu ignorieren. Die Java-Welt befindet sich in einer Umbruchsituation. Die Java-Hersteller erklären, dass in Zukunft alle grafischen Entwicklungen nur noch mit Java-FX arbeiten werden. Das sehen vermutlich sehr viele Unternehmen anders, da sie seit Jahren bereits Swing verwenden. So ist also beides am Markt. Sicherheitshalber habe ich beide Technologien behandelt. Suchen Sie sich etwas aus! Und da es für Android noch einmal eine eigene grafische Umgebung gibt, werden wir auch da einmal hineinschauen.
Nun kommen wir schon in die Regionen für fortgeschrittene Programmierer. Wir sehen uns die Datencontainer des Java Collection Frameworks an, schreiben und lesen Dateien und Datenbanken, schauen, wie Programme parallel laufen können, und werden die Anwendungen zur Netzwerkkommunikation anregen.
Wenn wir so weit gekommen sind, können wir auch die Stufe zur Client-Server-Programmierung mit der Java Enterprise Edition erklimmen. Sie werden sehen, wie man Software as a Service erstellt, und Client-Server-Architekturen wie SOAP und REST kennenlernen.
Vielleicht sollte ich Sie warnen: Die Leute vom Verlag haben mir keine Vorschriften zu diesem Buch gemacht. Alles war erlaubt. Einfach alles. Es gab zwei Bedingungen: Ich darf nicht gegen geltendes Recht verstoßen und der Leser muss Java lernen. Es ist aber nicht so schlimm, wie Sie jetzt vielleicht fürchten. In weiten Teilen ist es wirklich ein seriöses Fachbuch.
Dieses Buch basiert auf meinem Java-Buch, das 2013 veröffentlicht wurde. Den Inhalt habe ich aktualisiert und noch all die Dinge hineingeschrieben, die ich wichtig fand. Es ist nun etwa doppelt so umfangreich und in der Reihe für Dummies erschienen.
In der ersten Auflage hatte Christine Siedle als Lektorin die Weichen gestellt. Bei dieser Auflage hat mich Marcel Ferner unterstützt. Beiden habe ich und vor allem das Buch viel zu verdanken. Frau Heubach-Erdmann begradigte meine Verbrechen an der deutschen Sprache und viele Leute mit Gefühl für Design bauten aus der Vorlage ein Buch. Und wenn nun noch die Abteilung Marketing richtig aktiv wird, werde ich vielleicht doch noch reich. Ansonsten versuche ich es weiter mit arbeiten.
Das Buch hat sehr davon profitiert, dass ich seit einiger Zeit bei der Hochschule Flensburg angestellt bin. Die Studenten der Veranstaltungen »Strukturierte Programmierung«, »Objektorientierte Programmierung« und »Client-Server-Programmierung mit der Java Enterprise Edition« hatten so einen erheblichen Einfluss auf die Gestaltung und die Verständlichkeit dieser Auflage. Mein Dank gilt auch den zahlreichen Kollegen, die mir viel Vertrauen entgegenbrachten. Die Atmosphäre dort ist toll. Wenn Sie also Informatik oder Medien-Informatik studieren wollen, kommen Sie in den Norden!
Auch meine Familie hat indirekt an diesem Buch mitgewirkt. Sie haben mich mit Nahrungsmitteln versorgt und mir den nötigen Freiraum verschafft. Selbst die Katze hatte ihren Anteil, wie Sie am Kapitel über Exceptions feststellen werden. Allerdings ist sie inzwischen verstorben. Aber ich bin unschuldig. Ehrlich!
Der Setzer hatte noch ein paar Schriftarten übrig. Daraus haben wir etwas gemacht:
www.informationen.de/im/internet
.Befehle
und Schlüsselworte
verwende ich diese Darstellung.Funktionen
und Methoden
werden auf diese Weise hervorgehoben. Und dann gibt es noch Bezeichner
und Variablen
.Ich habe eine ganze Weile überlegt, wer Sie sind, der Sie dieses Buch lesen. Ich gehe mal davon aus, dass Sie vielleicht noch nicht oft oder noch nie programmiert haben. Aber pfiffig sollten Sie schon sein. Das sind nämlich alle Programmierer – fragen Sie doch mal einen!
Dann geriet ich in eine solche Schreibekstase, dass Themen dazukamen, die auch erfahrenen Java-Programmierern noch Spaß machen. Die können die ersten Kapitel mit einem wissenden Lächeln überblättern, werden aber bestimmt auch Spaß an dem Buch haben.
Sie werden nicht nur einen Computer benötigen, sondern ihn auch benutzen müssen. Programmieren ist mehr eine Frage der Routine als der Intelligenz. Das bestätigen alle, die mich kennen. Im Anfang ist es noch frustrierend, weil man ständig auf die selbst gemachten Fehler stößt. Darauf kann man unterschiedlich reagieren: Man wirft entnervt den Computer aus dem Fenster, schiebt die Schuld anderen in die Schuhe, beispielsweise Java oder dem doofen Autor, oder man beginnt, über sich selbst zu lachen.
Letzteres wünsche ich Ihnen. Mit der Zeit wird es nämlich besser. Und dann werden Sie feststellen, dass nichts so kreativ ist wie das Programmieren. Und Sie brauchen nicht mehr als Ihren Computer und Ihre Fantasie. Dann können Sie alles programmieren, was sich ein Mensch denken kann. Und das macht Spaß!
Wir haben uns auch in diesem Buch entschlossen, die Buchstaben von links nach rechts zu schreiben. Damit ein wenig Ordnung in die vielen Buchstaben kommt, gibt es eine grobe Gliederung:
Teil I: Programmieren lernen
Sie lernen die Werkzeuge kennen, wie man aus Schleifen, Abfragen und Methoden Programme baut. Sie werden Zahlen und Zeichenketten bändigen und miteinander verbinden. Damit kann man schon ein Spiel bauen und darum werden wir das auch tun.
Teil II: Objektorientiert und modular
Nun bauen Sie die Welt nach. Sie gestalten Objekte wie etwa Autos, Personen oder auch Mensaspeisen. Das Tolle an der Objektorientierung ist, dass man die Arbeit auf mehrere Leute verteilen kann.
Teil III: Erweitern Sie den Horizont
Wir lassen uns von Java in den Ausnahmesituationen unseres Programms mit Exceptions helfen, erfreuen uns an Werkzeugkästen voller Zufallszahlen, Kalendern und mathematischer Formeln. Gut, wenn man nicht alles selbst machen muss.
Teil IV: Fenster- und Grafikprogrammierung
Sie erstellen eigene Fenster. Spiele machen gleich viel mehr Spaß, wenn man sie grafisch untermalen kann. Das gute alte Swing und das neue FX werden gleichermaßen behandelt. Und da sich Android-Smartphones auch in Java programmieren lassen, spielen wir damit ebenfalls herum.
Teil V: Daten längerfristig speichern
Bisher war der Computer nur bis zum Ende des Programms schlau. Nun sollen die Programme lernen, ihre Weisheit aufzubewahren. Dazu greifen wir zu allen Mitteln: Dateien und Datenbanken. Und die wichtigsten Datenformate XML und JSON werden Sie auch noch brauchen.
Teil VI: Praktisches
Ich gebe zu, dass ich keine wirklich gute Überschrift für zwei Dinge fand, die darunter fallen. Als Beans bezeichnet man Datenobjekte und wir werden sehen, wie die gegenseitig Ereignisse melden. Threads sind parallel laufende Unterprogramme.
Teil VII: Netzwerke und Internet
Wir werden die Kommunikation zwischen Computern erproben, die Romeo und Julia spielen. Und dann wird Java Mails versenden, Webseiten lesen und mit Google Maps spielen.
Vor allem werden wir uns die Profitechniken von Java Enterprise Edition ansehen. Da fallen dann die Schlagwörter aus den Stellenanzeigen wie Application Server, Java Server Pages, JPA, REST und SOAP. Wir drehen also am ganz großen Rad der Client-Server-Architektur.
Teil VIII: Werkzeuge
Mit dem Debugger können Sie Programme Schritt auf Schritt verfolgen und so auch verborgene Fehler finden. Wir bauen Programme, die sich automatisch selbst testen, und verwenden eine Versionskontrolle, um in alten Versionen zu wühlen, aber auch, damit ein Programmierteam auf dem gleichen Stand ist.
Teil IX: Top-Ten-Teil
Hier finden Sie eine Hitparade der beliebtesten Programmierfehler und ganz persönliche Dinge.
Das ist ja doch ganz schön viel geworden. Erstaunlich, dass es so exakt zwischen die Buchdeckel passt.
Als ich dieses Buch schrieb, durfte ich mir ein paar Symbole aussuchen, die Sie nun immer wieder sehen werden. Sie müssen sie nicht auswendig lernen. Sie werden vermutlich schon am Inhalt merken, was sie bedeuten. Aber damit alles seine Ordnung hat, stelle ich Ihnen die Symbole kurz vor.
Die Formalitäten sind erledigt. Sie können sich mit Ihrem Computer einschließen und die wunderbare Welt der Java-Programmierung entdecken. Dabei wird Ihr PC Dinge kennenlernen, die er nie zuvor gesehen hat.
Falls Sie dieses Buch richtig gut finden, senden Sie eine Mail an den Verlag, schreiben Sie eine Rezension für Amazon und informieren Sie das Fernsehen. Falls nicht, schicken Sie eine Mail an javafuerdummies@willemer.de
. Ich werde sie lesen, und sobald ich mich davon erholt habe, dass ein Leser mich nicht verstanden hat, werde ich Ihnen antworten.
Arnold Willemer
Norgaardholz
Teil I
Kapitel 1
IN DIESEM KAPITEL
Von dem Autor eines Fachbuches für eine Programmiersprache erwartet man, dass er im ersten Kapitel ein Loblied auf diese Sprache singt. Wenn Sie dieses Buch kaufen wollen, haben Sie vermutlich gute Gründe, Java zu lernen. Und da werde ich Ihnen natürlich nicht abraten und so einen potenziellen Leser verlieren! Wie sollte ich dann Bestseller-Autor werden?
Falls Sie die Programmiersprache, die Sie lernen wollen, nach dem Namen aussuchen, sind Sie hier richtig. Java! Kaum eine Programmiersprache hat solch einen hübschen Namen! Klingt Java nicht nach Südsee, Urlaub und weißen Stränden? Benannt wurde Java eigentlich nach Kaffee, der aus Java kommt. Auch das ist schön. Denn wer von uns mag denn keinen Kaffee?
Wer tatächlich weder Kaffee noch Südseeinseln mag, wird wohl Python programmieren müssen. Aber ob Schlangen wirklich schöner sind? Nebenbei bemerkt, ist die Sprache Python tatsächlich sehr nett. Ich könnte Ihnen da ein Buch empfehlen. Aber vielleicht sollte ich doch lieber erzählen, welche Besonderheiten Java so hat.
Java ist objektorientiert. Und weil objektorientiert beim Programmieren heutzutage ganz wichtig ist, drängt Java den Programmierer dazu, indem es massiv Hilfen zur Verfügung stellt. Nun ist die objektorientierte Programmierung, von ihren Fans auch kurz OOP genannt, wirklich hilfreich bei der Bewältigung großer Projekte. Darum sollten Sie Java diesen Zwang nicht übel nehmen.
Damit ich nicht allzu sehr ins Schwärmen gerate, werde ich hier auf Details zur OOP verzichten und dies an geeigneter Stelle nachholen.
Ein typisches Merkmal von Java ist der Versuch, so viele Fehlerquellen auszuräumen wie irgend möglich und so den Programmierer vor seinem eigenen Fehlverhalten zu beschützen. Ein gutes Beispiel ist die Müllabfuhr, die Garbage Collection. Programmierer vergessen schon mal die Beseitigung ihrer Speicherleichen. Und wir wissen ja alle, was mit alterndem Müll geschieht: Er beginnt langsam intensiv zu stinken.
Aber trotz aller Vorsichtsmaßnahmen durch Java ist eine sorgfältige Programmierung nicht überflüssig geworden. Ja, es gibt das Gerücht, dass auch schon einmal ein Java-Programm abgestürzt sei.
Wirklich brillieren kann Java allerdings auf dem Gebiet der Portabilität. Der Programmierer schreibt ein Programm, übersetzt es und es läuft auf Linux, Mac und Windows. Das ist schon sehr beeindruckend. Bei vielen anderen Programmiersprachen müssten Sie das Programm für jede Plattform neu schreiben. Ein Java-Programm sollte hingegen eigentlich auch auf jedem Telefon, der programmierbaren Fernbedienung, dem Toaster und auf allen Internetseiten laufen. Aber da ist sie wieder, die lästige Realität. Bei den Telefonen sind die Displays sehr klein, und bei Webanwendungen gibt es aus Sicherheitsgründen keinen Zugriff auf die lokalen Dateien. So müssen vielleicht nicht immer gleich Extra-Süppchen gekocht werden, aber manchmal muss die Beilage an das jeweilige Ziel angepasst werden. Weniger kulinarisch ausgedrückt: Sie können zwar auch auf exotischen Umgebungen Java programmieren, müssen aber ein paar Einschränkungen und Besonderheiten in Kauf nehmen.
Und dann gibt es noch marktpolitische Gründe, warum Java-Programme nicht überall da laufen dürfen, wo sie könnten. So hat Microsoft schon früh seine Unterstützung für Java zurückgezogen, als klar wurde, dass der Benutzer bei portablen Programmen frei wählen kann, ob er statt Windows vielleicht ein ganz anderes Betriebssystem verwenden möchte. Microsoft konnte zwar nicht verhindern, dass Java-Programme auch auf Windows laufen, sie müssen sich die Umgebung, in der sie laufen, aber selbst mitbringen. Apple unterbindet die Programmierung von iPhone-Apps in Java, angeblich um Sicherheitslücken zu vermeiden. Ein Schelm, der »Android« dabei denkt.
Wenn eine Anwendung überall laufen soll, ergibt sich zwangsläufig, dass Java alles an Bord haben muss, was das Programm je benötigen könnte. So ist insbesondere die grafische Oberfläche der Programme aus der Sicht des Java-Programmierers überall gleich. Andere Programmierer müssen für Windows entweder Win32, MFC oder .NET lernen. Für Linux sollten Sie GTK oder Qt beherrschen. Und natürlich hat der Mac auch eine ganz eigene Programmierschnittstelle. Dasselbe gilt auch für Datenbanken oder die Prozessverwaltung. Der Java-Programmierer programmiert alle Datenbanken gleich. Willkommen in der wunderbar langweiligen Welt der standardisierten Umgebung!
Ja, zugegeben: Java-Programme haben nicht den Ruf, mit quietschenden Reifen ihre Aufgaben zu erledigen. Das beginnt schon beim Start einer Java-Anwendung. Da startet nämlich zunächst die virtuelle Maschine durch, bevor das Programm das erste Mal husten kann. Nun weiß jeder Power-User, dass Java-Programme interpretiert werden (was das ist, steht im nächsten Abschnitt), und Interpreter haben seit den Zeiten von BASIC den Ruf elender Schnarchnasen.
Zum Glück sind die Zeiten der BASIC-Interpreter vorbei. Java übersetzt das Programm in einen vorkompilierten Code, der auf schnelle Ausführung optimiert ist, und so muss sich das Java-Laufzeitsystem nicht mit irgendwelche Textzeilen quälen. Außerdem ist es auch schon über zwanzig Jahre her, dass die meisten C-64 ihren Weg in den Elektronikschrott gefunden haben. Und seither sind unsere Computer so schnell geworden, dass Sie einen aktuellen Computer vom Discounter nur an seine Grenzen fahren können, indem Sie ihm mit der Konvertierung von Spielfilmen drohen oder einen Ego-Shooter spielen wollen, bei dem Sie das Blut in 3D spritzen sehen wollen. Auf einem Durchschnittsrechner werden Sie also keine Verzögerung bei der Ausführung der Java-Programme bemerken. Überraschenderweise benutze ich gerade für den Videoschnitt seit Jahren ein Java-Programm, das ich unter anderem wegen seiner Geschwindigkeit schätze.
Java ist eine Programmiersprache. Programmiersprachen sind für Menschen gemacht, damit sie darin Anweisungen für Computer codieren können. Das Problem ist, dass Computer eigentlich solche Sprachen nicht verstehen. Sie schwärmen eher für Zahlenkombinationen, die sie dann für Befehle halten und ausführen. Diese Diskrepanz muss irgendwie überbrückt werden. Es gibt zwei Arten von Programmen, die genau dies tun:
Und was macht nun Java? Beides! Ich habe ja schon erwähnt, dass der Java-Code interpretiert wird. Aber das ist nur die halbe Wahrheit. Zuvor übersetzt der Java-Compiler, der von seinen Freunden javac
genannt wird, den Quellcode in einen Maschinencode für eine Maschine, die es gar nicht gibt. Und dieser Maschinencode wird dann auf jeder Zielmaschine interpretiert. Der Interpreter nennt sich geschwollen Java Runtime System und wird mit seinem Spitznamen java
aufgerufen.
Sowohl Compiler als auch Interpreter einzusetzen, erscheint zunächst völlig unsinnig. Das dahinter stehende Prinzip lässt sich aber an meinem Traum eines ultimativen Wohnmobils recht anschaulich erläutern. Es ist zusammengebaut aus einem Kleinlaster und einem alten Wohnwagen. Da sind richtig gute Ideen eingebaut. Die Betten sind bequem und mit einem Griff zur Sitzecke umgebaut. Die energieeffiziente Küche nutzt den kleinen Platz ideal. Die Dusche verbraucht kaum Wasser und hat doch einen vollen Strahl. Jetzt stellen Sie sich noch vor, das Wohnmobil habe einen speziellen Antrieb, der auf Solar-energie und Wasserstoff basiert. Wenn es nicht fährt, nutzt es die Sonne, um das bei Regen aufgefangene Wasser in Wasserstoff und Sauerstoff aufzuteilen.
Das Super-Wohnmobil hat lediglich einen Nachteil. Es fährt nur auf der Straße. Das ist für ein Wohnmobil nicht ungewöhnlich, ich fahre aber nun mal genauso gerne mit einem Boot in Urlaub. Es wäre also toll, wenn ich als Unterbau auch einen Bootsrumpf daruntersetzen könnte. Darum hat die Wohnzelle eine klare Verbindung, an denen die Anschlüsse und das Zahnrad für den Antrieb sitzen, und schon kann die Wohnzelle einfach durch einen Kran vom Boot auf den Laster und umgekehrt gesetzt werden. Wenn man nun noch jemanden findet, der einen Luftkissenunterbau herstellt, könnte man sogar in den Everglades Urlaub machen und Alligatoren füttern. Letzteres ist aber vermutlich verboten. Vor allem wenn man als Futter die Schwiegermutter verwendet.
Und was hat das jetzt mit der virtuellen Maschine zu tun? Ganz einfach! Das übersetzte Java-Programm ist die Kabine. Es verändert sich nach der Erstellung nicht mehr. Es setzt auf einem Unterbau auf, der es von der harten Wirklichkeit der verschiedenen Computersysteme trennt. Ob das Vehikel zu Wasser oder zu Land unterwegs ist, muss die Kabine nicht wissen. Der Unterbau ist also die virtuelle Maschine und die Kabine die Java-Anwendung.
Die virtuelle Maschine ist das Java Runtime Environment (JRE). Bei einigen Systemen ist es bereits installiert oder eingebaut. Aber bei fast allen anderen Systemen kann man es nachinstallieren.
Wo wir gerade bei dreibuchstabigen Kürzeln sind: Neben dem JRE gibt es noch das JDK. Das JDK ist das Java Development Kit. Das ist der Werkzeugsatz, den der Programmierer benötigt, um Java-Programme zu entwickeln. Es enthält beispielsweise den Compiler, der aus dem Source-Code den Zwischencode erzeugt, der dann später von der JRE ausgeführt werden kann.
Wer mit Computern zu tun hat, stellt fest, dass die Branche gelegentlich etwas an Sachlichkeit zu wünschen übrig lässt. Die Emotionswelle entspricht manchmal der von Fußballfans. Wer eine Programmiersprache kennt, wird sie bis aufs Messer verteidigen und Beweise über die Unfähigkeit aller anderen Programmiersprachen auf den Tisch legen. Dabei sind Erfahrungen mit der gegnerischen Sprache scheinbar eher hinderlich.
Der Hintergrund dieser Emotionen ist vermutlich die Angst, das eigene Wissen könnte obsolet werden, wenn sich die andere Programmiersprache oder das andere Betriebssystem durchsetzt.
Java hat seine Kompetenz da, wo Portabilität benötigt wird. Bei sorgfältiger Programmierung kann das Programm ohne Neuübersetzung auf verschiedenen Computern laufen.
Das hat zur direkten Folge, dass es klare Vorgehensweisen geben muss, wie man Datenbanken und grafische Oberflächen programmiert, ohne auf die Spezialitäten einzelner Produkte eingehen zu müssen. Es ergibt sich also eine hohe Standardisierung.
Das Design der Sprache Java ist durch eine gewisse Ideologie geprägt. Man möchte den Programmierer dazu zwingen, saubere objektorientierte Programme zu schreiben. Das hat etwas für sich, wenn man sieht, dass Cobol-Programmierer in jeder Programmiersprache Cobol programmieren können. Und Cobol ist wahrhaft keine übersichtliche oder wartungsfreundliche Programmiersprache.
Seinen wirklichen Vorteil spielt Java im Bereich der verteilten Systeme aus. Mit Java schreiben Sie nicht nur einfache Anwendungen, sondern auch Client-Anwendungen, Servlets, die auf Server-Anfragen warten, aufgedonnerte HTML-Seiten oder REST-Server, die Ressourcen verteilen.
Kapitel 2
IN DIESEM KAPITEL
Ich denke, dass nun der Tatendrang aus Ihnen hervorbricht, denn es sollen Programme entstehen. Dazu benötigen Sie als Programmierer Werkzeug und davon gibt es reichlich und erstaunlicherweise alles kostenlos.
Die meisten Programmierer bevorzugen eine IDE. IDE hat leider nicht zwangsläufig etwas mit Idee zu tun, sondern ist die Abkürzung für Integrated Development Environment, also integrierte Entwicklungsumgebung. Diese Programme enthalten einen Editor, den Compiler, einen Debugger, eine Projektverwaltung und einige sehr praktische Tools.
Aber wo wir gerade bei Idee sind: Es ist nicht falsch, wenn ein Java-Programmierer eine Idee davon hat, wie es unter der Motorhaube seiner IDE aussieht. Dazu besuchen wir das Java Development Kit.