Einführung in Java
Ideal für Studium, Ausbildung und Beruf. Sprachgrundlagen inkl. objektorientierter Programmierung und mehr
Günster, Kai

37,29 €

zzgl. MwSt. · Portofrei
ab 3
ab 10
37.29 €
37.29 €

Vielen Dank für Ihr Interesse an diesem Produkt. Leider können wir keine Bestellung durchführen ohne das Sie die Cookies akzeptieren. Bitte wählen Sie unten im Banner den entsprechenden Cookie aus. Ansonsten rufen Sie uns gerne an, wir nehmen Ihre Bestellung dann gerne telefonisch auf.

Produktbeschreibung

Mit diesem Buch steigen Sie ohne Vorkenntnisse in Java und die objektorientierte Programmierung ein. Schritt für Schritt machen Sie sich mit der Sprache und ihren Konzepten vertraut. Sie lernen, in Algorithmen zu denken und Java sowie die vielen Werkzeuge Ihrer Plattform geschickt zu nutzen. Immer praxisnah und mit Gefühl für mögliche Verständnishürden: So werden auch professionelle Themen wie Testabdeckung, Multithreading und Servletentwicklung einsteigergerecht vermittelt. Schließlich schreiben Sie zeitgemäßen Code, der auch komplexe Software trägt. Ideal für Ausbildung, Studium und Beruf!

Aus dem Inhalt:

  • Die Entwicklungsumgebung einrichten und kennenlernen
  • Grundkonzepte glasklar vorgestellt
  • Sprachmittel gründlich verstehen
  • Neue Features einsetzen
  • Unit Tests und Test Driven Design
  • Datenbanken anbinden
  • In Servlet-Technologie einsteigen
  • Events einsetzen und asynchron programmieren
  • GUIs entwickeln
  • Guten Code schreiben
  • Mit Dateien und Streams arbeiten
  • In die Entwicklung von Android-Apps einsteigen




Materialien zum Buch ... 19


1. Einführung ... 21


1.1 ... Was ist Java? ... 22

1.2 ... Die Arbeitsumgebung installieren ... 28

1.3 ... Erste Schritte in NetBeans ... 30

1.4 ... Das erste Programm ... 32

1.5 ... In Algorithmen denken, in Java schreiben ... 41

1.6 ... Die Java-Klassenbibliothek ... 47

1.7 ... Dokumentieren als Gewohnheit -- Javadoc ... 50

1.8 ... JARs erstellen und ausführen ... 56

1.9 ... Mit dem Debugger arbeiten ... 61

1.10 ... Das erste eigene Projekt ... 66

1.11 ... Zusammenfassung ... 68



2. Variablen und Datentypen ... 69


2.1 ... Variablen ... 69

2.2 ... Primitivtypen ... 73

2.3 ... Objekttypen ... 87

2.4 ... Objekt-Wrapper zu Primitiven ... 91

2.5 ... Array-Typen ... 94

2.6 ... Zusammenfassung ... 96



3. Entscheidungen ... 97


3.1 ... Entweder-oder-Entscheidungen ... 97

3.2 ... Logische Verknüpfungen ... 104

3.3 ... Mehrfach verzweigen mit »switch« ... 110

3.4 ... Zusammenfassung ... 116



4. Wiederholungen ... 117


4.1 ... Bedingte Wiederholungen mit »while« ... 117

4.2 ... Abgezählte Wiederholungen -- die »for«-Schleife ... 121

4.3 ... Abbrechen und überspringen ... 123

4.4 ... Zusammenfassung ... 126



5. Klassen und Objekte ... 127


5.1 ... Klassen und Objekte ... 128

5.2 ... Access-Modifier ... 130

5.3 ... Felder ... 132

5.4 ... Methoden ... 133

5.5 ... Warum Objektorientierung? ... 142

5.6 ... Konstruktoren ... 144

5.7 ... Statische Felder und Methoden ... 148

5.8 ... Unveränderliche Werte ... 151

5.9 ... Spezielle Objektmethoden ... 154

5.10 ... Zusammenfassung ... 156



6. Objektorientierung ... 157


6.1 ... Vererbung ... 158

6.2 ... Interfaces und abstrakte Datentypen ... 171

6.3 ... Übung: Objektorientierte Modellierung ... 179

6.4 ... Innere Klassen ... 180

6.5 ... Enumerationen ... 187

6.6 ... Zusammenfassung ... 190



7. Unit Testing ... 191


7.1 ... Das JUnit-Framework ... 193

7.2 ... Fortgeschrittene Unit Tests ... 199

7.3 ... Besseres Design durch Testfälle ... 205

7.4 ... Zusammenfassung ... 208



8. Die Standardbibliothek ... 209


8.1 ... Zahlen ... 209

8.2 ... Strings ... 214

8.3 ... Reguläre Ausdrücke ... 224

8.4 ... Zeit und Datum ... 231

8.5 ... Internationalisierung und Lokalisierung ... 236

8.6 ... Zusammenfassung ... 244



9. Fehler und Ausnahmen ... 245


9.1 ... Exceptions werfen und behandeln ... 245

9.2 ... Verschiedene Arten von Exceptions ... 252

9.3 ... Invarianten, Vor- und Nachbedingungen ... 258

9.4 ... Zusammenfassung ... 260



10. Arrays und Collections ... 261


10.1 ... Arrays ... 261

10.2 ... Die for-each-Schleife ... 271

10.3 ... Variable Parameterlisten ... 271

10.4 ... Collections ... 273

10.5 ... Typisierte Collections -- Generics ... 278

10.6 ... Maps ... 288

10.7 ... Zusammenfassung ... 290



11. Lambda-Ausdrücke ... 291


11.1 ... Was sind Lambda-Ausdrücke? ... 292

11.2 ... Die Stream-API ... 304

11.3 ... Un-Werte als Objekte -- »Optional« ... 321

11.4 ... Eine Warnung zum Schluss ... 324

11.5 ... Zusammenfassung ... 325



12. Dateien, Streams und Reader ... 327


12.1 ... Dateien und Verzeichnisse ... 328

12.2 ... Reader, Writer und die »anderen« Streams ... 334

12.3 ... Objekte lesen und schreiben ... 346

12.4 ... Netzwerkkommunikation ... 349

12.5 ... Zusammenfassung ... 352



13. Multithreading ... 353


13.1 ... Threads und Runnables ... 354

13.2 ... Atomare Datentypen ... 361

13.3 ... Synchronisation ... 362

13.4 ... Fortgeschrittene Koordination zwischen Threads ... 370

13.5 ... Die Zukunft -- wortwörtlich ... 376

13.6 ... Das Speichermodell von Threads ... 381

13.7 ... Zusammenfassung ... 383



14. Servlets -- Java im Web ... 385


14.1 ... Einen Servlet-Container installieren ... 386

14.2 ... Die erste Servlet-Anwendung ... 392

14.3 ... Servlets programmieren ... 403

14.4 ... Java Server Pages ... 410

14.5 ... Langlebige Daten im Servlet -- Ablage in Session und Application ... 416

14.6 ... Fortgeschrittene Servlet-Konzepte -- Listener und Initialisierung ... 419

14.7 ... Zusammenfassung ... 422



15. Datenbanken und Entitäten ... 423


15.1 ... Was ist eine Datenbank? ... 424

15.2 ... Mit einer Datenbank über die JPA verbinden ... 431

15.3 ... Anwendung und Entitäten ... 436

15.4 ... Entitäten laden ... 439

15.5 ... Entitäten löschen ... 444

15.6 ... Beziehungen zu anderen Entitäten ... 445

15.7 ... Zusammenfassung ... 452



16. GUIs mit JavaFX ... 453


16.1 ... Einführung ... 453

16.2 ... Installation ... 454

16.3 ... Architektur von JavaFX ... 454

16.4 ... GUI-Komponenten ... 457

16.5 ... Layouts ... 468

16.6 ... GUI mit Java-API -- Urlaubsverwaltung ... 478

16.7 ... Event-Handling ... 482

16.8 ... JavaFX-Properties und Binding ... 489

16.9 ... Deklarative GUIs mit FXML ... 495

16.10 ... Layout mit CSS ... 501

16.11 ... Transformationen, Animationen und Effekte ... 505

16.12 ... Übungen ... 512

16.13 ... Zusammenfassung ... 513



17. Android ... 515


17.1 ... Einstieg in die Android-Entwicklung ... 515

17.2 ... Eine Benutzeroberfläche designen ... 528

17.3 ... Anwendungen mit mehreren Activities ... 535

17.4 ... Permissions und SystemServices ... 542

17.5 ... Apps im Play Store veröffentlichen ... 546

17.6 ... Zusammenfassung ... 546



18. Hinter den Kulissen ... 549


18.1 ... Klassenpfade und Classloading ... 549

18.2 ... Garbage Collection ... 556

18.3 ... Flexibel codieren mit der Reflection-API ... 563

18.4 ... Blick in die Zukunft ... 569

18.5 ... Zusammenfassung ... 572



19. Und dann? ... 573


19.1 ... Jakarta EE ... 574

19.2 ... Open-Source-Software ... 579

19.3 ... Ergänzende Technologien ... 580

19.4 ... Andere Sprachen ... 583

19.5 ... Programmieren Sie! ... 585



Anhang ... 587


A ... Java-Bibliotheken ... 589

B ... Lösungen zu den Übungsaufgaben ... 597

C ... Glossar ... 707

D ... Kommandozeilenparameter ... 723



Index ... 731


»Das Java Buch schafft es, wie ich finde, wirklich gut dir die wichtigsten Konzepte [...] beizubringen.« Programmierbuch.de 202008

Inhaltsverzeichnis






Materialien zum Buch ... 19




1. Einführung ... 21



1.1 ... Was ist Java? ... 22


1.2 ... Die Arbeitsumgebung installieren ... 28


1.3 ... Erste Schritte in NetBeans ... 30


1.4 ... Das erste Programm ... 32


1.5 ... In Algorithmen denken, in Java schreiben ... 41


1.6 ... Die Java-Klassenbibliothek ... 47


1.7 ... Dokumentieren als Gewohnheit -- Javadoc ... 50


1.8 ... JARs erstellen und ausführen ... 56


1.9 ... Mit dem Debugger arbeiten ... 61


1.10 ... Das erste eigene Projekt ... 66


1.11 ... Zusammenfassung ... 68





2. Variablen und Datentypen ... 69



2.1 ... Variablen ... 69


2.2 ... Primitivtypen ... 73


2.3 ... Objekttypen ... 87


2.4 ... Objekt-Wrapper zu Primitiven ... 91


2.5 ... Array-Typen ... 94


2.6 ... Zusammenfassung ... 96





3. Entscheidungen ... 97



3.1 ... Entweder-oder-Entscheidungen ... 97


3.2 ... Logische Verknüpfungen ... 104


3.3 ... Mehrfach verzweigen mit »switch« ... 110


3.4 ... Zusammenfassung ... 116





4. Wiederholungen ... 117



4.1 ... Bedingte Wiederholungen mit »while« ... 117


4.2 ... Abgezählte Wiederholungen -- die »for«-Schleife ... 121


4.3 ... Abbrechen und überspringen ... 123


4.4 ... Zusammenfassung ... 126





5. Klassen und Objekte ... 127



5.1 ... Klassen und Objekte ... 128


5.2 ... Access-Modifier ... 130


5.3 ... Felder ... 132


5.4 ... Methoden ... 133


5.5 ... Warum Objektorientierung? ... 142


5.6 ... Konstruktoren ... 144


5.7 ... Statische Felder und Methoden ... 148


5.8 ... Unveränderliche Werte ... 151


5.9 ... Spezielle Objektmethoden ... 154


5.10 ... Zusammenfassung ... 156





6. Objektorientierung ... 157



6.1 ... Vererbung ... 158


6.2 ... Interfaces und abstrakte Datentypen ... 171


6.3 ... Übung: Objektorientierte Modellierung ... 179


6.4 ... Innere Klassen ... 180


6.5 ... Enumerationen ... 187


6.6 ... Zusammenfassung ... 190





7. Unit Testing ... 191



7.1 ... Das JUnit-Framework ... 193


7.2 ... Fortgeschrittene Unit Tests ... 199


7.3 ... Besseres Design durch Testfälle ... 205


7.4 ... Zusammenfassung ... 208





8. Die Standardbibliothek ... 209



8.1 ... Zahlen ... 209


8.2 ... Strings ... 214


8.3 ... Reguläre Ausdrücke ... 224


8.4 ... Zeit und Datum ... 231


8.5 ... Internationalisierung und Lokalisierung ... 236


8.6 ... Zusammenfassung ... 244





9. Fehler und Ausnahmen ... 245



9.1 ... Exceptions werfen und behandeln ... 245


9.2 ... Verschiedene Arten von Exceptions ... 252


9.3 ... Invarianten, Vor- und Nachbedingungen ... 258


9.4 ... Zusammenfassung ... 260





10. Arrays und Collections ... 261



10.1 ... Arrays ... 261


10.2 ... Die for-each-Schleife ... 271


10.3 ... Variable Parameterlisten ... 271


10.4 ... Collections ... 273


10.5 ... Typisierte Collections -- Generics ... 278


10.6 ... Maps ... 288


10.7 ... Zusammenfassung ... 290





11. Lambda-Ausdrücke ... 291



11.1 ... Was sind Lambda-Ausdrücke? ... 292


11.2 ... Die Stream-API ... 304


11.3 ... Un-Werte als Objekte -- »Optional« ... 321


11.4 ... Eine Warnung zum Schluss ... 324


11.5 ... Zusammenfassung ... 325





12. Dateien, Streams und Reader ... 327



12.1 ... Dateien und Verzeichnisse ... 328


12.2 ... Reader, Writer und die »anderen« Streams ... 334


12.3 ... Objekte lesen und schreiben ... 346


12.4 ... Netzwerkkommunikation ... 349


12.5 ... Zusammenfassung ... 352





13. Multithreading ... 353



13.1 ... Threads und Runnables ... 354


13.2 ... Atomare Datentypen ... 361


13.3 ... Synchronisation ... 362


13.4 ... Fortgeschrittene Koordination zwischen Threads ... 370


13.5 ... Die Zukunft -- wortwörtlich ... 376


13.6 ... Das Speichermodell von Threads ... 381


13.7 ... Zusammenfassung ... 383





14. Servlets -- Java im Web ... 385



14.1 ... Einen Servlet-Container installieren ... 386


14.2 ... Die erste Servlet-Anwendung ... 392


14.3 ... Servlets programmieren ... 403


14.4 ... Java Server Pages ... 410


14.5 ... Langlebige Daten im Servlet -- Ablage in Session und Application ... 416


14.6 ... Fortgeschrittene Servlet-Konzepte -- Listener und Initialisierung ... 419


14.7 ... Zusammenfassung ... 422





15. Datenbanken und Entitäten ... 423



15.1 ... Was ist eine Datenbank? ... 424


15.2 ... Mit einer Datenbank über die JPA verbinden ... 431


15.3 ... Anwendung und Entitäten ... 436


15.4 ... Entitäten laden ... 439


15.5 ... Entitäten löschen ... 444


15.6 ... Beziehungen zu anderen Entitäten ... 445


15.7 ... Zusammenfassung ... 452





16. GUIs mit JavaFX ... 453



16.1 ... Einführung ... 453


16.2 ... Installation ... 454


16.3 ... Architektur von JavaFX ... 454


16.4 ... GUI-Komponenten ... 457


16.5 ... Layouts ... 468


16.6 ... GUI mit Java-API -- Urlaubsverwaltung ... 478


16.7 ... Event-Handling ... 482


16.8 ... JavaFX-Properties und Binding ... 489


16.9 ... Deklarative GUIs mit FXML ... 495


16.10 ... Layout mit CSS ... 501


16.11 ... Transformationen, Animationen und Effekte ... 505


16.12 ... Übungen ... 512


16.13 ... Zusammenfassung ... 513





17. Android ... 515



17.1 ... Einstieg in die Android-Entwicklung ... 515


17.2 ... Eine Benutzeroberfläche designen ... 528


17.3 ... Anwendungen mit mehreren Activities ... 535


17.4 ... Permissions und SystemServices ... 542


17.5 ... Apps im Play Store veröffentlichen ... 546


17.6 ... Zusammenfassung ... 546





18. Hinter den Kulissen ... 549



18.1 ... Klassenpfade und Classloading ... 549


18.2 ... Garbage Collection ... 556


18.3 ... Flexibel codieren mit der Reflection-API ... 563


18.4 ... Blick in die Zukunft ... 569


18.5 ... Zusammenfassung ... 572





19. Und dann? ... 573



19.1 ... Jakarta EE ... 574


19.2 ... Open-Source-Software ... 579


19.3 ... Ergänzende Technologien ... 580


19.4 ... Andere Sprachen ... 583


19.5 ... Programmieren Sie! ... 585





Anhang ... 587



A ... Java-Bibliotheken ... 589


B ... Lösungen zu den Übungsaufgaben ... 597


C ... Glossar ... 707


D ... Kommandozeilenparameter ... 723





Index ... 731



Klappentext



Mit diesem Buch steigen Sie ohne Vorkenntnisse in Java und die objektorientierte Programmierung ein. Schritt für Schritt machen Sie sich mit der Sprache und ihren Konzepten vertraut. Sie lernen, in Algorithmen zu denken und Java sowie die vielen Werkzeuge Ihrer Plattform geschickt zu nutzen. Immer praxisnah und mit Gefühl für mögliche Verständnishürden: So werden auch professionelle Themen wie Testabdeckung, Multithreading und Servletentwicklung einsteigergerecht vermittelt. Schließlich schreiben Sie zeitgemäßen Code, der auch komplexe Software trägt. Ideal für Ausbildung, Studium und Beruf!



Aus dem Inhalt:



  • Die Entwicklungsumgebung einrichten und kennenlernen

  • Grundkonzepte glasklar vorgestellt

  • Sprachmittel gründlich verstehen

  • Neue Features einsetzen

  • Unit Tests und Test Driven Design

  • Datenbanken anbinden

  • In Servlet-Technologie einsteigen

  • Events einsetzen und asynchron programmieren

  • GUIs entwickeln

  • Guten Code schreiben

  • Mit Dateien und Streams arbeiten

  • In die Entwicklung von Android-Apps einsteigen






Mit Übungsaufgaben, Codebeispielen und ausführlichen Lösungen