forked from DH-Cologne/java-wegweiser
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README.md
195 lines (121 loc) · 10.2 KB
/
README.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
# Der wachsende Wegweiser zum Java-Modul
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
[![All Contributors](https://img.shields.io/badge/all_contributors-6-orange.svg?style=flat-square)](#contributors-)
<!-- ALL-CONTRIBUTORS-BADGE:END -->
Ein Wegweiser zur Java-Programmierung, der mit seinen Aufgaben wächst. Für die Teilnehmer*innen des Moduls **"Softwaretechnologie: Java"** der Studiengänge **Informationsverarbeitung** und **Medieninformatik** am **IDH** (**I**nstitut für **D**igital **H**umanities, Universität zu Köln) und alle Interessierten! :open_hands:
> **Work in progress.** :construction: :snail:
Dieses Repository ist weit davon entfernt, vollständig zu sein. Aber das ist okay. Wenn dir auffällt, dass etwas Wichtiges fehlt oder unzureichend erläutert ist, dann [eröffne ein Issue](https://github.com/dh-cologne/java-wegweiser/issues) oder [trage eigene Änderungen bei](Mitwirken.md)!
## Übrigens :speech_balloon:
:book: [**Inhalt**](#inhalt-book) — Zum Inhaltsverzeichnis springen!
:thinking: [**Was ist das hier**](Was-Ist-Das.md) — Bzw. was ist es nicht?
:woman_technologist: [**Contributing**](Mitwirken.md) — Oder: Wie kann ich hier mitwirken?
:couch_and_lamp: [**Lese-Ansicht**](https://dh-cologne.github.io/java-wegweiser) — Wenn du aus Versehen im Repository gelandet bist!
:closed_book: [**Glossar**](Glossar.md) — Allgemeine Terminologie der Programmierung (wichtig)!
:link: [**Link-Liste**](Links.md) — Weitere empfehlenswerte (online-) Ressourcen!
## Inhalt :book:
> :point_right: Die einzelnen Themenbereiche sind hier mit `Schlagworten` kurz zusammengefasst. Die jeweilige Überschrift verlinkt auf das Dokument mit allen Inhalten zum entsprechenden Thema.
### Einstieg
#### [Benötigte Software](articles/Benoetigte-Software.md)
> `JDK`, `Eclipse IDE`, `Download`, `Installation`, ...
#### [Die Programmiersprache Java](articles/Die-Programmiersprache-Java.md)
> `Warum Java?`, `Warum nicht?`, `Besonderheiten`, `Java Platform`, `Java Ecosystem`, `Packages`, `Hello World!`, ...
#### [Eclipse IDE](articles/Eclipse-IDE.md)
> `IDE`, `Warum Eclipse?`, `Workspaces`, `Views`, `Editor`, `Die wichtigsten Funktionen`, `Import`, `Export`, `Console`, `Ausführen von Programmen`, `Automatisch generierter Code`...
### Grundlagen
#### [Hello World](articles/Hello-World.md)
> `Das erste Programm`, `Was ist das alles?`
#### [Packages, `package` und `import`](articles/Packages-package-und-import.md)
> `Packages`, `Pakete`, `Paket-Pfade`, `package`, `import`
#### [`main`-Methode](articles/Main-Methode.md)
> `main`
#### [Kommentare](articles/Kommentare.md)
> `// inline`, `/* multi-line */`
#### [Variablen](articles/Variablen.md)
> `Was ist das?`, `Syntax`, `naming conventions`, `Typisierung`, ...
#### [Datentypen](articles/Datentypen.md)
> `primitive Datentypen`, `komplexe Datentypen`, `byte`, `short`, `int`, `long`, `float`, `double`, `boolean`, `char`, `default-Werte`, `Wrapper-Klassen`...
#### [Casting](articles/Casting.md)
> `Typumwandlung`, `implizit`, `explizit`, `upcast`, `downcast`, `cast-Operator`, `Casting bei komplexen Datentypen`, ...
#### [Methoden](articles/Methoden.md)
> `Rückgabewerte`, `Parameter/Argumente`, `return`, `Überlagerung`, `Java ist immer pass-by-value` ...
#### [Operatoren](articles/Operatoren.md)
> `Rechenoperatoren`, `Vergleichsoperatoren`, `logische Operatoren`, `Zuweisungsoperatoren`, `+`, `-`, `*`, `/`, `%`, `++`, `--`, `==`, `!=`, `>`, `<`, `>=`, `<=`, `&&`, `||`, `=`, `+=`, `-=`, `/=`, `*=`, `%=`, `&=`, `|=`, ...
#### [Strings](articles/Strings.md)
> `die Klasse "String"`, `Literals`, `special characters`, `Unveränderbarkeit von Strings`, `UTF-16`, ...
#### [Konditionale / Conditional statements](articles/Konditionale.md)
> `if`, `else`, `:? (Ternary-Operator)`, `switch`
#### [Schleifen](articles/Schleifen.md)
> `while`, `do-while`, `for`, `for-each`, :ribbon:
#### [Arrays](articles/Arrays.md)
> `Datenstrukturen`, `Deklaration`, `Typisierung`, `Initialisierung`, `Array Literals`, `Zugriff`, `Mehrdimensionale Arrays`, ...
#### [Enums](articles/Enums.md)
> `Enums`, ...
#### [Fehlerbehandlung](articles/Fehlerbehandlung.md)
> `Error`, `Exception`, `try`, `catch`, `finally`, `try-with-resources`, `throws`, ...
### Objektorientierte Programmierung (OOP)
#### [OOP, Klassen und Objekte](articles/OOP-Klassen-und-Objekte.md)
> `Definition`, `Nutzen`, `Beispiele`, `Klasse`, `Objekt`, `Kuchen`, ...
#### [Objekte I: Initialisierung, Members, Zugriff](articles/Objekte-I-Initialisierung-Members-Zugriff.md)
> `new-Operator`, `Instanzvariablen`, `Instanzmethoden`, `Sichtbarkeits-/Zugriffsmodifizierer`, `private`, `(default)`, `protected`, `public`, `this`, `Getter`, `Setter`, `Konstruktoren`, ...
#### [Objekte II: Repräsentation, Identität, Gleichheit](articles/Objekte-II-Repraesentation-Identitaet-Gleichheit.md)
> `toString()`, `Objekt-Identität`, `Objekt-Gleichheit`, `equals()`, `hashCode()`, `Der Vertrag zwischen equals() und hashCode()`, ...
#### [Static Members](articles/Static-Members.md)
> `static`, `Klassenvariablen`, `statische Methoden`, ...
#### [Innere und anonyme Klassen](articles/Innere-und-anonyme-Klassen.md)
> `Anonyme Klassen`, `Innere Klassen`, ...
#### [`final`](articles/Final.md)
> `final`, `finale Variablen` `finale Klassen`, `finale Methoden`, `Konstanten in Java`, ...
#### [Vererbung I: Grundlagen](articles/Vererbung-I-Grundlagen.md)
> `Wozu?`, `Terminologie`, `extends`, `super`, `instanceof-Operator`, `Überschreiben von Methoden`, ...
#### [Vererbung II: Abstrakte Klassen und Methoden](articles/Vererbung-II-Abstrakte-Klassen-und-Methoden.md)
> `abstrakte Klassen`, `abstrakte Methoden`, `abstract`, ...
#### [Vererbung III: Interfaces](articles/Vererbung-III-Interfaces.md)
> `Interfaces`, `Erweiterung von Interfaces`, `default-Methoden` ...
### Abstrakte Konzepte und Fortgeschrittenes
#### [Rekursion](articles/Rekursion.md)
> `Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.`
#### [Input / Output (I/O)](articles/IO.md)
> `Streams`, `Buffering`, `Reader`, `Writer`, `Objektserialisierung`, ...
#### [DIY-Datenstrukturen](articles/DIY-Datenstrukturen.md)
> `verkettete Listen`, `zweifach verkettete Listen`, `Binärbäume`, `binäre Suchbäume`, `Iterable`, `Iterator`, `siehe auch "Collections Framework"!` ...
#### [Generics](articles/Generics.md)
> `Was?`, `Wozu?`, `<Syntax>`, `Typsicherheit trotz generischer Programmierung`, `Gültigkeit bei Kompilierung und zur Laufzeit`, ...
#### [Collections Framework](articles/Collections-Framework.md)
> `Aufbau`, `List`, `Set`, `Map`, `Objekt-Identität im Kontext von HashMaps/HashSets`, ...
#### [Vergleichen und Sortieren](articles/Vergleichen-Sortieren.md)
> `Comparable`, `Comparator`, `Collections.sort()`, `Sortieralgorithmen` ...
#### [Multithreading](articles/Multithreading.md)
> `Prozess`, `Thread`, `Runnable`, `synchronized`, `volatile`, ...
#### [Externe Programmbibliotheken](articles/Programmbibliotheken.md)
> `Wozu?`, `Wie werden sie eingebunden?`, `Maven`, `Gradle` ...
#### [Unit-Tests](articles/Unit-Tests.md)
> `Wozu?`, `Schreiben von Unit-Tests`, `Test-driven-development`, `JUnit`, ...
### Allgemeines / Sonstiges
#### [Naming Conventions](articles/Naming-Conventions.md)
> `Konventionen für Bezeichner in Java`, `Groß-/Kleinschreibung`, ...
#### [Dokumentation mit JavaDoc](articles/JavaDoc.md)
> `Wozu?`, `/**`, `@param`, `@return`, `<code></code>`, `best practices`, ...
## Contributors ✨
Das ist alles. **Bis jetzt!** Wie wäre es mit [**deinem Beitrag**](Mitwirken.md)?
Dank für die Mitarbeit an diesem Repository gebührt den folgenden fleißigen Mitwirkenden ([emoji legende](https://allcontributors.org/docs/en/emoji-key)):
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
<tr>
<td align="center"><a href="https://github.com/bkis"><img src="https://avatars0.githubusercontent.com/u/9215743?v=4" width="96px;" alt=""/><br /><sub><b>bkis</b></sub></a><br /><a href="#content-bkis" title="Content">🖋</a> <a href="#example-bkis" title="Examples">💡</a> <a href="#ideas-bkis" title="Ideas, Planning, & Feedback">🤔</a> <a href="#maintenance-bkis" title="Maintenance">🚧</a></td>
<td align="center"><a href="https://github.com/hntFulvan"><img src="https://avatars3.githubusercontent.com/u/64469511?v=4" width="96px;" alt=""/><br /><sub><b>Nicolas David Werner</b></sub></a><br /><a href="#content-hntFulvan" title="Content">🖋</a> <a href="#example-hntFulvan" title="Examples">💡</a></td>
<td align="center"><a href="https://github.com/Lelalue"><img src="https://avatars1.githubusercontent.com/u/34158237?v=4" width="96px;" alt=""/><br /><sub><b>Lelalue</b></sub></a><br /><a href="#content-Lelalue" title="Content">🖋</a> <a href="#example-Lelalue" title="Examples">💡</a></td>
<td align="center"><a href="https://allcontributors.org"><img src="https://avatars1.githubusercontent.com/u/46410174?v=4" width="96px;" alt=""/><br /><sub><b>All Contributors</b></sub></a><br /><a href="#tool-all-contributors" title="Tools">🔧</a></td>
<td align="center"><a href="https://github.com/mkamphausen"><img src="https://avatars2.githubusercontent.com/u/43293625?v=4" width="96px;" alt=""/><br /><sub><b>mkamphausen</b></sub></a><br /><a href="#content-mkamphausen" title="Content">🖋</a> <a href="#example-mkamphausen" title="Examples">💡</a></td>
<td align="center"><a href="http://#"><img src="https://avatars2.githubusercontent.com/u/29183752?v=4" width="96px;" alt=""/><br /><sub><b>Julian Kamphausen</b></sub></a><br /><a href="#content-jkamphausen" title="Content">🖋</a> <a href="#example-jkamphausen" title="Examples">💡</a></td>
</tr>
</table>
<!-- markdownlint-enable -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->
> :point_right: **Dieses Projekt hält sich an die [all-contributors](https://github.com/all-contributors/all-contributors)-Spezifikation.**
> Contributions (Beiträge) jeder Art [sind willkommen](Mitwirken.md) und werden an dieser Stelle wie oben zu sehen aufgeführt!
<div class="top-link">
<a href="#" title="Zum Anfang scrollen!">Top :balloon:</a>
</div>