Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Dieses Buch ist eine Einführung in die Programmiersprache Java und ihre Umgebung. Egal, ob du ein Softwareentwickler bist oder einfach nur jemand, der das Internet im Alltag nutzt, du hast zweifellos schon von Java gehört. Seine Einführung war eine der aufregendsten Entwicklungen in der Geschichte des Internets, und Java-Anwendungen sind nach wie vor der Motor des Geschäfts im Internet. Java ist die wohl beliebteste Programmiersprache der Welt und wird von Millionen von Entwicklern auf fast allen erdenklichen Computern eingesetzt. Java hat Sprachen wie C++ und Visual Basic in Bezug auf die Entwicklernachfrage überholt und ist zur De-facto-Sprache für bestimmte Arten der Entwicklung geworden - vor allem für webbasierte Dienste. Die meisten Universitäten verwenden Java inzwischen in ihren Einführungskursen neben den anderen wichtigen modernen Sprachen. Vielleicht verwendest du diesen Text gerade in einem deiner Kurse!

Dieses Buch bietet dir eine gründliche Einführung in die Grundlagen und die Grammatik von Java. Learning Java, Sixth Edition, versucht, seinem Namen gerecht zu werden, indem es die Sprache Java und ihre Klassenbibliotheken, Programmiertechniken und Idiome vorstellt. Wir tauchen tief in interessante Bereiche ein und kratzen bei anderen beliebten Themen zumindest an der Oberfläche. Andere Titel von O'Reilly machen da weiter, wo wir aufgehört haben, und bieten umfassendere Informationen zu bestimmten Bereichen und Anwendungen von Java.

Wann immer es möglich ist, liefern wir überzeugende, realistische und unterhaltsame Beispiele und vermeiden es, nur Funktionen zu katalogisieren. Die Beispiele sind einfach, aber sie deuten an, was alles möglich ist. Wir werden auf diesen Seiten nicht die nächste große "Killer-App" entwickeln, aber wir hoffen, dass wir dir einen Ausgangspunkt für viele Stunden des Experimentierens und inspirierenden Tüftelns geben können, der dich dazu bringt, selbst eine zu entwickeln.

Wer sollte dieses Buch lesen?

Dieses Buch richtet sich an Computerfachleute, Studenten, Techniker und finnische Hacker. Es ist für alle, die praktische Erfahrung mit Java brauchen, um echte Anwendungen zu erstellen. Man könnte dieses Buch auch als Crashkurs in objektorientierter Programmierung, Threads und Benutzeroberflächen bezeichnen. Während du Java kennenlernst, lernst du auch einen leistungsstarken und praktischen Ansatz für die Softwareentwicklung, der mit einem tiefen Verständnis der Grundlagen von Java beginnt.

Oberflächlich betrachtet sieht Java wie C oder C++ aus. Du hast also einen kleinen Vorsprung bei der Benutzung dieses Buches, wenn du bereits Erfahrung mit einer dieser Sprachen hast. Wenn du das nicht hast, mach dir keine Sorgen. In vielerlei Hinsicht verhält sich Java wie dynamischere Sprachen wie Smalltalk und Lisp. Die Kenntnis einer anderen objektorientierten Programmiersprache wird dir sicherlich helfen, auch wenn du vielleicht einige Vorstellungen ändern und einige Gewohnheiten verlernen musst. Java ist wesentlich einfacher als Sprachen wie C++ und Smalltalk. Wenn du gut von prägnanten Beispielen und persönlichen Experimenten lernst, wird dir dieses Buch gefallen.

Neue Entwicklungen

Wir behandeln alle wichtigen Funktionen der neuesten "Long-Term-Support"-Version von Java, die offiziell Java Standard Edition (SE) 21, OpenJDK 21, heißt. Sun Microsystems (vor Oracle der Hüter von Java) hat das Namensschema im Laufe der Jahre mehrmals geändert. Sun prägte den Begriff Java 2 für die wichtigsten neuen Funktionen, die in Java Version 1.2 eingeführt wurden, und ließ den Begriff JDK zugunsten von SDK fallen. Mit der sechsten Version ging Sun von Java 1.4 zu Java 5.0 über, nahm aber den Begriff JDK wieder auf und behielt die Nummerierung bei. Danach folgten Java 6, Java 7 und Java 8. Ab Java 9 kündigte Oracle einen regelmäßigen (und beschleunigten) Veröffentlichungsrhythmus an. Neue Versionen werden zweimal im Jahr veröffentlicht, und wir schreiben das Jahr 2023 mit Java 21.

Diese Version von Java spiegelt eine ausgereifte Sprache mit gelegentlichen syntaktischen Änderungen und Aktualisierungen von Paketen und Bibliotheken wider. Wir haben versucht, diese neuen Funktionen zu erfassen und jedes Beispiel in diesem Buch zu aktualisieren, damit es den aktuellen Java-Stil und die bewährten Methoden widerspiegelt.

Neu in dieser Ausgabe (Java 15, 16, 17, 18, 19, 20, 21)

Diese Ausgabe des Buches setzt unsere Tradition der Überarbeitung fort, um so aktuell wie möglich zu sein. Sie enthält die Änderungen der letzten Java-Versionen, von Java 15 bis Java 21 (Early Access). Zu den neuen Themen in dieser Ausgabe gehören:

  • Virtuelle Threads, die beeindruckende Leistungssteigerungen in Szenarien ermöglichen, die viele, viele Threads erfordern

  • Neue Abdeckung von Funktionsströmen für die Datenverarbeitung

  • Erweiterte Abdeckung von Lambda-Ausdrücken

  • Aktualisierte Beispiele und Analysen im gesamten Buch

  • Wiederholungsfragen und Übungen zur Vertiefung der in den einzelnen Kapiteln behandelten Themen

Dieses Buch verwenden

Dieses Buch ist wie folgt gegliedert:

  • Die Kapitel 1 und2 bieten eine grundlegende Einführung in Java-Konzepte und ein Tutorial, das dir einen schnellen Einstieg in die Java-Programmierung ermöglicht.

  • Kapitel 3 behandelt die grundlegenden Werkzeuge für die Entwicklung mit Java (den Compiler, den Interpreter, die jshell und das JAR-Dateipaket).

  • Die Kapitel 4 und5 führen in die Grundlagen der Programmierung ein und beschreiben dann die Java-Sprache selbst. Sie beginnen mit der grundlegenden Syntax und behandeln Klassen und Objekte, Ausnahmen, Arrays, Aufzählungen, Anmerkungen und vieles mehr.

  • Kapitel 6 behandelt Ausnahmen, Fehler und die Java-eigenen Protokollierungsfunktionen.

  • In Kapitel 7 geht es um Sammlungen, Generika und parametrisierte Typen in Java.

  • Kapitel 8 behandelt Textverarbeitung, Formatierung, Scannen, String-Utilities und viele der wichtigsten API-Utilities.

  • Kapitel 9 behandelt die eingebauten Thread-Funktionen der Sprache, einschließlich der neuen virtuellen Threads.

  • Kapitel 10 behandelt Java File I/O und das NIO-Paket.

  • Kapitel 11 behandelt Techniken der Funktionsprogrammierung in Java.

  • Kapitel 12 behandelt die Grundlagen der Entwicklung von grafischen Benutzeroberflächen (GUI) mit Swing.

  • Kapitel 13 behandelt die Netzwerkkommunikation für Clients und Server sowie den Zugriff auf Webressourcen.

Wenn du wie wir bist, liest du Bücher nicht von vorne bis hinten. Wenn du wirklich wie wir bist, liest du das Vorwort normalerweise überhaupt nicht. Für den unwahrscheinlichen Fall, dass du es doch noch rechtzeitig siehst, haben wir hier ein paar Vorschläge:

  • Wenn du bereits ein Programmierer bist und Java in den nächsten fünf Minuten lernen musst, suchst du wahrscheinlich nach den Beispielen. Vielleicht möchtest du zunächst einen Blick auf das Tutorial in Kapitel 2 werfen. Wenn dir das nicht zusagt, solltest du dir zumindest die Informationen in Kapitel 3 ansehen, in dem erklärt wird, wie man den Compiler und den Interpreter benutzt. Das sollte dir den Einstieg erleichtern.

  • Kapitel 12 befasst sich mit den Grafikfunktionen und der Komponentenarchitektur von Java. Das solltest du lesen, wenn du daran interessiert bist, grafische Java-Desktop-Anwendungen zu schreiben .

  • Wenn du dich für das Schreiben von Netzwerkanwendungen oder die Interaktion mit webbasierten Diensten interessierst, istKapitel 13 der richtige Ort für dich. Die Netzwerktechnik ist nach wie vor einer der interessantesten und wichtigsten Bereiche von Java.

Online-Ressourcen

Es gibt viele Online-Quellen für Informationen über Java.

Informiere dich auf der offiziellen Website von Oracle über Java-Themen wie die Software, Updates und Java-Versionen. Hier findest du auch die Referenzimplementierung des JDK, die den Compiler, den Interpreter und andere Tools enthält.

Oracle unterhält auch die OpenJDK-Website. Dies ist die wichtigste Open-Source-Version von Java und den dazugehörigen Tools. Wir werden das OpenJDK für alle Beispiele in diesem Buch verwenden.

Du solltest auch die Website von O'Reilly besuchen. Dort findest du Informationen über andere O'Reilly-Bücher zu Java und einer wachsenden Zahl anderer Themen. Du solltest dir auch die Online-Lern- und Konferenzangebote ansehen - O'Reilly ist ein echter Verfechter der Bildung in all ihren Formen.

Und natürlich kannst du auch die Homepage von Learning Java besuchen!

In diesem Buch verwendete Konventionen

Die in diesem Buch verwendeten Schriftkonventionen sind recht einfach.

Kursiv wird verwendet für:

  • Pfadnamen, Dateinamen und Programmnamen

  • Internetadressen, wie z. B. Domänennamen und URLs

  • Neue Begriffe, wo sie definiert sind

  • Programmnamen, Compiler, Interpreter, Dienstprogramme und Befehle

  • Hervorhebung wichtiger Punkte

Constant width wird verwendet für:

  • Alles, was in einem Java-Programm vorkommen kann, einschließlich Methodennamen, Variablennamen und Klassennamen

  • Tags, die in einem HTML- oder XML-Dokument erscheinen können

  • Schlüsselwörter, Objekte und Umgebungsvariablen

Constant width bold wird verwendet für:

  • Text, der vom Benutzer in der Befehlszeile oder in einem Dialog eingegeben wird

Constant width italic wird verwendet für:

  • Ersetzbare Elemente im Code

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Im Hauptteil des Textes verwenden wir immer ein Paar leere Klammern nach einem Methodennamen, um Methoden von Variablen, Klassen und anderen Lebewesen zu unterscheiden.

In den Java-Quelltexten folgen wir den in der Java-Gemeinschaft am häufigsten verwendeten Kodierungskonventionen. Klassennamen beginnen mit Großbuchstaben, Variablen- und Methodennamen mit Kleinbuchstaben. Alle Buchstaben in den Namen von Konstanten werden großgeschrieben. Wir verwenden keine Unterstriche, um Wörter in einem langen Namen zu trennen; der gängigen Praxis folgend, schreiben wir die einzelnen Wörter groß (nach dem ersten) und reihen die Wörter aneinander. Zum Beispiel: thisIsAVariable, thisIsAMethod(), ThisIsAClass, undTHIS_IS_A_CONSTANT. Beachte auch, dass wir zwischen statischen und nicht-statischen Methoden unterscheiden, wenn wir auf sie verweisen. Im Gegensatz zu anderen Büchern schreiben wir nie Foo.bar(), um die Methode bar() von Foo zu bezeichnen, es sei denn, bar() ist eine statische Methode (was in diesem Fall der Java-Syntax entspricht).

Bei Quelltexten von Beispielprogrammen beginnt die Auflistung mit einem Kommentar, der den entsprechenden Dateinamen (und ggf. den Methodennamen) angibt:

// filename: ch02/examples/HelloWorld.java

  public static void main(String args[]) {
    System.out.println("Hello, world!");
  }

Du kannst dir die notierte Datei in deinem Editor oder deiner IDE ansehen. Wir ermutigen dich, die Beispiele zu kompilieren und auszuführen. Und wir ermutigen dich besonders zum Basteln!

Für die Arbeit in jshell behalten wir immer die Eingabeaufforderung jshell bei:

jshell> System.out.println("Hello, jshell!")
Hello, jshell!

Andere Schnipsel ohne Dateinamen oder jshell-Eingabeaufforderung sollen die gültige Syntax und Struktur veranschaulichen oder eine hypothetische Herangehensweise an eine Programmieraufgabe darstellen. Diese ungeschmückten Auflistungen sind nicht unbedingt dazu gedacht, ausgeführt zu werden, obwohl du immer dazu ermutigt wirst, deine eigenen Klassen zu erstellen, um jedes Thema in diesem Buch auszuprobieren.

Code-Beispiele verwenden

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eine Genehmigung erforderlich .

Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Learning Java by Marc Loy, Patrick Niemeyer, and Daniel Leuck (O'Reilly). Copyright 2023 Marc Loy, 978-1-098-14553-8."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter https://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

Wir haben eine Webseite für dieses Buch, auf der wir Errata und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/learning-java-6e aufrufen .

Du kannst GitHub besuchen, um die Code-Beispiele herunterzuladen. Weitere Details zum Herunterladen und Arbeiten mit den Beispielen findest du inAnhang A.

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.

Finde uns auf LinkedIn: https://linkedin.com/company/oreilly-media

Folge uns auf Twitter: https://twitter.com/oreillymedia

Schau uns auf YouTube: https://youtube.com/oreillymedia

Danksagungen

Viele Menschen haben dazu beigetragen, dieses Buch zusammenzustellen, sowohl in seiner ursprünglichen Form als Exploring Java als auch in seiner jetzigen Form als Learning Java. Vor allem möchten wir Brian Guerin, Senior Acquisitions Editor, und Zan McQuade, Content Director, für den Anstoß zu dieser Ausgabe danken. Unser Dank gilt aber auch dem gesamten Team von O'Reilly, einschließlich Sarah Grey, Development Editor, Ashley Stussy, Production Editor, und Kristen Brown, Manager, Content Services. Es ist schwer vorstellbar, dass es ein Unternehmen gibt, das sich mehr für den Erfolg seiner Mitarbeiter, Autoren und Leser einsetzt. Sarah verdient ein besonders lautes Lob für ihre Arbeit bei der Herausgabe dieser sechsten Ausgabe. Autoren bedanken sich oft bei ihren Redakteuren, unabhängig vom Genre des Buches, aber diese Dankbarkeit und dieses Lob sind bei technischen Themen doppelt wichtig. Sarah ist eine unermüdliche Mitarbeiterin, die unsere Laune fast genauso regelmäßig hebt, wie sie die Qualität unserer Texte verbessert.

Bei der Vorbereitung dieser Ausgabe haben uns mehrere Redakteure wertvolles Feedback gegeben. Duncan MacGregor hat mehrere Themen in sinnvollere Bahnen gelenkt. Eric van Hoose hat unsere Prosa gestrafft. David Calabrese wies uns auf Stellen hin, an denen neue Programmierer mehr Hintergrundwissen benötigen könnten. Und Alex Faber hat uns geholfen, den Code für alle Beispiele und Übungen zu validieren. Wie bei so vielen Dingen sind zusätzliche Augen unverzichtbar. Wir können uns glücklich schätzen, so aufmerksame Paare in unserer Ecke zu haben.

Die ursprüngliche Version des Glossars stammt aus dem Buch Java in a Nutshell (O'Reilly) von David Flanagan. Wir haben auch einige Diagramme zur Klassenhierarchie aus Davids Buch entlehnt. Diese Diagramme basierten auf ähnlichen Diagrammen von Charles L. Perkins.

Abschließend möchte ich mich bei Ron Becker für seine fundierten Ratschläge und interessanten Ideen aus der Sicht eines Laien bedanken, der weit von der Programmierwelt entfernt ist.

Get Java lernen, 6. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.