Next:
Impressum
Java Grundlagen
1
Impressum
2
Die Geschichte von Java: Eine Revolution in der Softwareentwicklung
2.1
Ursprünge
2.2
Ziele und Prinzipien
2.3
Durchbruch und Popularität
2.4
Standardisierung und Open Source
2.5
Vielfalt der Anwendungsbereiche
2.6
Ausblick
3
Vorteile und Anwendungsgebiete von Java
3.1
Vorteile von Java
3.1.1
Plattformunabhängigkeit
3.1.2
Umfangreiches Ökosystem und starke Community
3.1.3
Objektorientierte Programmierung
3.1.4
Sicherheitsmechanismen
3.1.5
Multi-Threading
3.1.6
Enterprise Level
3.1.7
Speicherverwaltung
3.2
Anwendungsgebiete von Java
3.2.1
Backend-Entwicklung
3.2.2
Webanwendungen
3.2.3
Mobile Entwicklung
3.2.4
Cloud Computing
3.2.5
Big Data
3.2.6
Finanzsektor
3.2.7
Internet der Dinge (IoT)
3.2.8
Wissenschaft und Forschung
4
Java Setup
4.1
JDK (Java Development Kit) Installation
4.1.1
Oracle JDK
4.1.2
OpenJDK
4.1.3
AdoptOpenJDK
4.2
IDE (Integrated Development Environment) Auswahl
4.2.1
Eclipse
4.2.2
IntelliJ IDEA
4.2.3
NetBeans
4.3
Build Tools
4.3.1
Maven
4.3.2
Gradle
4.4
Versionskontrolle
4.4.1
Git
4.5
Zusätzliche Tools und Plugins
4.5.1
JUnit
4.5.2
SonarQube
5
Java Programme ausführen
5.0.1
Voraussetzungen
5.0.2
Schritte
5.0.3
Hinweis
6
Datentypen in Java: Primitive Datentypen und Referenztypen
6.1
Primitive Datentypen
6.1.1
byte
6.1.2
short
6.1.3
int
6.1.4
long
6.1.5
float
6.1.6
double
6.1.7
char
6.1.8
boolean
6.2
Referenztypen
6.2.1
Klassen
6.2.2
Arrays
6.2.3
Schnittstellen
6.2.4
Enumerations (Enums)
6.2.5
Generische Typen
7
Variablen in Java: Deklaration und Initialisierung
7.1
Variablendeklaration
7.1.1
Primitive Datentypen
7.1.2
Referenztypen
7.2
Variable Initialisierung
7.2.1
Primitive Datentypen
7.2.2
Referenztypen
7.3
Deklaration und Initialisierung zusammen
7.4
Variablenumfang (Scope)
7.4.1
Lokale Variablen
7.4.2
Instanzvariablen
7.4.3
Klassenvariablen (Statische Variablen)
8
Operatoren in Java: Arithmetische und Vergleichsoperatoren
8.1
Arithmetische Operatoren
8.1.1
Addition (+)
8.1.2
Subtraktion (-)
8.1.3
Multiplikation (*)
8.1.4
Division (/)
8.1.5
Modulus (%)
8.1.6
Inkrement (++)
8.1.7
Dekrement (–)
8.2
Vergleichsoperatoren
8.2.1
Gleichheit (==)
8.2.2
Ungleichheit (!=)
8.2.3
Größer als (>)
8.2.4
Kleiner als (<)
8.2.5
Größer oder gleich (>=)
8.2.6
Kleiner oder gleich (<=)
9
Kontrollstrukturen in Java: Bedingte Anweisungen
9.1
if-else-Anweisung
9.1.1
if-Anweisung
9.1.2
if-else-Anweisung
9.1.3
Verschachtelte if-else-Anweisung
9.2
switch-Anweisung
9.2.1
Grundlegende switch-Anweisung
9.2.2
switch-Anweisung mit mehreren Fällen für denselben Codeblock
9.2.3
switch-Anweisung mit Strings (ab Java 7)
10
Schleifen in Java: for-Schleife, while-Schleife, do-while-Schleife
10.1
for-Schleife
10.1.1
Einfache for-Schleife
10.1.2
Erweiterte for-Schleife (foreach)
10.2
while-Schleife
10.2.1
Einfache while-Schleife
10.3
do-while-Schleife
10.3.1
Einfache do-while-Schleife
11
Objektorientierte Programmierung in Java: Klassen und Objekte
11.1
Klassen-Definition
11.1.1
Einfache Klassen-Definition
11.1.2
Klassen-Definition mit Konstruktor
11.2
Objekt-Instanziierung
11.2.1
Einfache Objekt-Instanziierung
11.2.2
Objekt-Instanziierung mit Konstruktor
11.2.3
Zugriff auf Attribute und Methoden
12
Vererbung in Java: Erweitern von Klassen und Überschreiben von Methoden
12.1
Erweitern von Klassen
12.1.1
Grundlegende Vererbung
12.1.2
Zugriff auf die Methode der übergeordneten Klasse
12.2
Überschreiben von Methoden
12.2.1
Methode Überschreiben
12.2.2
Anwendung der überschriebenen Methode
12.2.3
Zugriff auf die Methode der übergeordneten Klasse mit
super
13
Polymorphie in Java: Methodenüberladung und Methodenüberschreibung
13.1
Methodenüberladung
13.1.1
Beispiel für Methodenüberladung
13.1.2
Anwendung der überladenen Methoden
13.2
Methodenüberschreibung
13.2.1
Beispiel für Methodenüberschreibung
13.2.2
Anwendung der überschriebenen Methode
14
Generics in Java
14.1
Einführung
14.2
Grundlegende Syntax
14.3
Typbeschränkungen
14.4
Wildcards
14.5
Generische Methoden
14.6
Typableitung
14.7
Nutzen
15
Fehlerbehandlung und Ausnahmen in Java
15.1
try-catch-Anweisung
15.1.1
Grundlegende try-catch-Anweisung
15.2
Eigene Ausnahmen definieren
15.2.1
Beispiel für eine eigene Ausnahme
15.3
Ressourcenmanagement mit try-with-resources
15.3.1
Beispiel für try-with-resources
16
Lambdas und Streams
16.1
Lambdas
16.1.1
Syntax
16.1.2
Beispiel
16.2
Methodenreferenzen
16.3
Streams
16.3.1
Erzeugen eines Streams
16.3.2
Operationen
16.3.3
Parallele Streams
16.4
Beispiele für kombinierte Nutzung
16.4.1
Filter und Map
16.4.2
Sammeln in einer Liste
17
Java Standardbibliothek
17.1
Java Collections Framework
17.1.1
List
17.1.2
Set
17.1.3
Map
17.2
Iteratoren
17.3
Date und Time API
17.4
I/O-Operationen
18
Netzwerkprogrammierung in Java
18.1
Sockets und Ports
18.1.1
Beispiel für einen einfachen Server-Socket
18.1.2
Beispiel für einen Client-Socket
18.2
TCP/IP-Verbindungen in Java
18.2.1
TCP Server-Beispiel
18.3
RESTful Webservices
18.3.1
Beispiel für einen einfachen REST-Endpoint mit JAX-RS
19
Multithreading in Java
19.1
Erstellen von Threads
19.1.1
Erben von Thread
19.1.2
Implementieren von Runnable
19.2
Synchronisation
19.2.1
synchronized-Block
19.2.2
Locks und Conditions
20
Java und Datenbanken
20.1
JDBC (Java Database Connectivity)
20.1.1
Connection, Statement, ResultSet
20.2
SQL-Anfragen aus Java
20.2.1
Beispiel für eine INSERT-Anfrage
21
Unit Testing mit JUnit
21.1
Grundlagen
21.1.1
Einfacher Test mit JUnit
21.2
Test Setup und Tear Down
21.3
Test Suites
21.4
Testen von Ausnahmen
22
Maven
22.1
Einführung
22.2
POM-Datei
22.3
Lebenszyklusphasen
22.3.1
Beispiel für die Compilierung und das Testen eines Projekts
22.4
Repositories
22.4.1
Hinzufügen eines Remote-Repositories
22.5
Plugins
22.5.1
Hinzufügen eines Plugins
23
Gradle
23.1
Einführung
23.2
Build-Datei
23.3
Aufgaben und Abhängigkeiten
23.3.1
Beispiel für eine benutzerdefinierte Aufgabe
23.3.2
Ausführung einer Aufgabe
23.4
Plugins
23.4.1
Beispiel für die Verwendung des Java-Plugins
23.5
Multi-Projekt-Builds
23.5.1
Beispiel für ein Root-Projekt
23.6
Wrapper
23.6.1
Wrapper initialisieren
24
Design Patterns mit Codebeispielen
24.1
Singleton
24.2
Factory Method
24.3
Observer
24.4
Strategy
24.5
Bridge
24.6
Command
25
Chain of Command mit Builder Pattern
25.1
Chain of Command
25.1.1
Chain of Command Beispiel
25.2
Builder Pattern
25.2.1
Builder Pattern Beispiel
25.3
Kombinierte Verwendung