Skip to content

Commit 5245b1b

Browse files
committed
Update to v1.1.1
1 parent 37dcdad commit 5245b1b

20 files changed

+614
-125
lines changed

LICENSE

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,8 @@ All contents of this archive are licensed under the following terms:
3939
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4040
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
4141
THE SOFTWARE.
42+
43+
3. External content (including memes, images, or other media not created by the author):
44+
- All rights remain with the original copyright holders.
45+
- This content is for illustrative, educational, or entertainment purposes only.
46+
- Users are responsible for respecting the copyright and license terms of external content.

README.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,20 @@ IT-related. Whether you are an experienced developer looking to refresh your ski
1616

1717
## What to expect here? 🤔
1818

19-
Currently, the Tech Archive covers three main topics: HTML, Java, and Mathematics. Java provides a solid introduction to
20-
the world of programming.
19+
Currently, the Tech Archive covers three main topics: [HTML](https://kesares.github.io/tech-archive/00-html.html),
20+
[Java](https://kesares.github.io/tech-archive/00-java.html), and
21+
[Mathematics](https://kesares.github.io/tech-archive/00-math.html). Java provides a solid introduction to the world of
22+
programming.
2123

22-
There is still relatively little content available for HTML, and in Mathematics I am just beginning to shed some light on
23-
the often abstract world of numbers and formulas. So don’t worry if you don’t find a lot of content here yet.
24+
There is still relatively little content available for HTML, and in Mathematics I am just beginning to shed some light
25+
on the often abstract world of numbers and formulas. So don’t worry if you don’t find a lot of content here yet.
2426

25-
In addition to the topic-specific content, there is a digital toolbox with useful links and resources to support you on
26-
your IT journey. From helpful articles to practical tools – feel free to explore and expand your digital toolbox.
27+
In addition to the topic-specific content, there is a
28+
[digital toolbox](https://kesares.github.io/tech-archive/digital-toolbox.html) with useful links and resources to
29+
support you on your IT journey. From helpful articles to practical tools – feel free to explore and expand your digital
30+
toolbox.
2731

28-
💡 Note: The archive contains highlighted terms that are explained in the glossary.
32+
💡 Note: The archive contains orange highlighted terms that are explained in the glossary.
2933

3034
## Why an archive at all? 🤷‍♂️
3135

@@ -41,6 +45,7 @@ topics may be re-categorized or re-organized to maintain clarity. Feel free to c
4145
## License
4246

4347
- **Documentation (text, tutorials, explanations, etc.):** [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode)
44-
You are free to share and adapt the material, as long as you give appropriate credit and distribute your contributions under the same license.
48+
You are free to share and adapt the material, as long as you give appropriate credit and distribute your contributions
49+
under the same license.
4550

4651
- **Source code and code examples:** [MIT License](https://opensource.org/licenses/MIT)

docs/cfg/buildprofiles.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
</variables>
2121
</build-profile>
2222
<footer>
23-
<copyright>Kesares</copyright>
23+
<copyright>2024-2025 Kesares</copyright>
2424
</footer>
2525

2626
</buildprofiles>

docs/cfg/glossary.xml

Lines changed: 48 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
<terms>
44
<term name="API">Eine API (Application Programming Interface) ist eine Schnittstelle, die es Softwareanwendungen
55
ermöglicht, miteinander zu kommunizieren. APIs legen fest, wie verschiedene Softwarekomponenten miteinander
6-
interagieren sollen, indem sie eine Reihe von Funktionen, Methoden oder Endpunkten bereitstellen, die von einer
7-
Anwendung genutzt werden können, um auf bestimmte Funktionen einer anderen Anwendung zuzugreifen.</term>
6+
interagieren sollen, indem sie eine Reihe von Funktionen, Methoden oder Endpunkten bereitstellen. Diese können
7+
von einer Anwendung genutzt werden, um auf bestimmte Funktionen einer anderen Anwendung zuzugreifen.</term>
88
<term name="Bit">Ein Bit (eng. Abkürzung für binary digit) ist die Bezeichnung für eine Binärziffer, welche als
99
Maßeinheit für eine Datenmenge dient. Dabei ist ein Bit die kleinste darstellbare Datenmenge. Ein Bit kann nur
1010
den Zuständen 0 oder 1 entsprechen.</term>
@@ -26,15 +26,31 @@
2626
<term name="Constants-Notation">Die Konstanten-Notation oder auch SCREAMING_SNAKE_CASE-Notation bezeichnet eine
2727
Schreibweise, wobei nur Großbuchstaben und Unterstriche verwendet werden, um die Bedeutung als "unveränderlichen
2828
Wert" hervorzuheben.</term>
29+
<term name="DTO">DTOs sind einfache Objekte, die dazu dienen, Daten zwischen verschiedenen Schichten oder Systemen
30+
zu transportieren. Sie enthalten meist nur Felder mit Getter- und Setter-Methoden, aber keine Geschäftslogik.
31+
</term>
32+
<term name="DIP">Dependency Inversion Principle (DIP): High-Level-Module sollten nicht von Low-Level-Modulen
33+
abhängig sein. Beide sollten auf Abstraktionen basieren. Dies fördert die Entkopplung von Komponenten durch
34+
Abstraktionen und Schnittstellen.</term>
35+
<term name="Entity">Entities sind Klassen, die direkt eine Datenbanktabelle abbilden. Jede Instanz einer
36+
Entity-Klasse entspricht einem Datensatz (Row) in der Tabelle. Sie enthalten typischerweise Felder für Spalten
37+
und sind oft mit JPA- oder Hibernate-Annotationen versehen, um die Zuordnung zu steuern.</term>
2938
<term name="GC">Ein Garbage Collector (GC) ist eine automatische Speicherverwaltung, die in vielen
3039
Programmiersprachen und Laufzeitumgebungen implementiert ist. Der Hauptzweck eines Garbage Collectors besteht
3140
darin, nicht mehr benötigte Objekte oder Datenstrukturen, die von einem Programm erstellt wurden, aus dem
3241
Speicher zu entfernen, um Speicherplatz freizugeben und Speicherlecks zu vermeiden.</term>
3342
<term name="IDE">Eine Integrated Development Environment (IDE) stellt eine Reihe von Programmierwerkzeugen wie einen
34-
Compiler oder Debugger zur Verfügung. Diese erleichtern deutlich das Schreiben und Entwickeln von Software.</term>
43+
Compiler oder Debugger zur Verfügung. Diese erleichtern deutlich das Schreiben und Entwickeln von Software.
44+
</term>
3545
<term name="IEEE-754">Die Norm IEEE 754 definiert Standarddarstellungen für binäre und dezimale Fließkommazahlen in
3646
Computern und legt genaue Verfahren für die Durchführung mathematischer Operationen, insbesondere für Rundungen,
3747
fest.</term>
48+
<term name="ISP">Interface Segregation Principle (ISP): Clients sollten nicht gezwungen sein, sich auf
49+
Schnittstellen zu verlassen, die sie nicht verwenden. Dieses Prinzip fördert die Erstellung kleinerer,
50+
fokussierter Schnittstellen.</term>
51+
<term name="Java-Bean">Java Beans sind wiederverwendbare Java-Klassen, die bestimmte Konventionen befolgen. Sie
52+
besitzen einen öffentlichen, parameterlosen Konstruktor, private Felder sowie öffentliche Getter- und
53+
Setter-Methoden.</term>
3854
<term name="Java-Heap">Der Java-Heap ist ein Speicherbereich, der für die dynamische Allokation von Speicherplatz
3955
während der Laufzeit reserviert ist. Der Heap wird verwendet, um Daten zuzuweisen, die während der
4056
Programmausführung dynamisch erstellt werden.</term>
@@ -51,29 +67,55 @@
5167
<term name="JNI">Das Java Native Interface (JNI) ist eine Schnittstelle, die es dem Java-Code ermöglicht, nativen
5268
Code zu verwenden und mit ihm zu interagieren. Es fungiert als Bindeglied zwischen dem Java-Code, der in der JVM
5369
läuft und nativem Code, der in Sprachen wie C oder C++ geschrieben wurde.</term>
70+
<term name="JPA">JPA ist eine standardisierte Java-Schnittstelle zur objektrelationalen Abbildung (ORM). Sie erlaubt
71+
es, Java-Objekte (Entities) auf Datenbanktabellen zu mappen, Abfragen durchzuführen und Daten zu speichern oder
72+
zu aktualisieren, ohne direkt SQL schreiben zu müssen. JPA definiert die Regeln und Annotations für Entities,
73+
Beziehungen und Transaktionen, während Frameworks wie Hibernate die eigentliche Umsetzung übernehmen.</term>
5474
<term name="JRE">Die Java Runtime Environment (JRE) ist eine Softwareschicht, die auf der Betriebssystemsoftware
5575
eines Computers ausgeführt wird und die Klassenbibliotheken, sowieso andere Ressourcen bereitstellt, die ein
5676
Java-Programm zur Ausführung benötigt. Die JVM ist Bestandteil der JRE.</term>
5777
<term name="JVM">Die Java Virtual Machine (JVM) ist eine virtuelle Maschine, die verwendet wird, um Java-Bytecode
5878
auszuführen. Sie interpretiert oder kompiliert den Java-Bytecode in Maschinenbefehle, die von der zugrunde
5979
liegenden Hardware ausgeführt werden können.</term>
80+
<term name="LSP">Liskov Substitution Principle (LSP): Untertypen (abgeleitete Klassen) müssen durch ihre Basistypen
81+
(übergeordnete Klassen) ersetzt werden können, ohne die Korrektheit des Programms zu verändern.</term>
6082
<term name="Memoization">Memoization bezeichnet eine Technik zur Optimierung, bei der Ergebnisse von teuren
6183
Funktionsaufrufen (meist rekursive oder häufig aufgerufene Funktionen) gespeichert werden, um wiederholte
6284
Berechnungen zu vermeiden. Die gespeicherten Ergebnisse werden in einer Datenstruktur abgelegt, sodass bei
63-
erneutem Auftreten derselben Eingabewerte bereits berechnete Ergebnisse direkt zurückgegeben werden können.</term>
85+
erneutem Auftreten derselben Eingabewerte bereits berechnete Ergebnisse direkt zurückgegeben werden können.
86+
</term>
87+
<term name="OOP">OOP ist ein Programmierparadigma, das Software in Form von Objekten organisiert, welche Daten
88+
(Attribute) und Verhalten (Methoden / Funktionen) kombinieren.</term>
89+
<term name="OCP">Open/Closed Principle (OCP): Software-Entitäten (z. B. Klassen, Module etc.) sollten für
90+
Erweiterungen offen, aber für Änderungen geschlossen sein. Dies fördert die Idee, die Funktionalität zu
91+
erweitern, ohne den vorhandenen Code zu ändern.</term>
6492
<term name="Orthogonality">Orthogonalität ist ein Begriff, der ursprünglich aus der Geometrie stammt und
6593
„Rechtwinkligkeit“ bedeutet. Zwei Vektoren sind orthogonal zueinander, wenn sie einen Winkel von 90° bilden.
66-
Orthogonalität wird aber auch in anderen Bereichen verwendet, wie z. B. in der Statistik, Informatik und
94+
Orthogonalität wird aber auch in anderen Bereichen verwendet, wie z. B. der Statistik, Informatik und
6795
Signalverarbeitung. Hier beschreibt Orthogonalität im Allgemeinen Unabhängigkeit oder Nicht-Korrelation.</term>
96+
<term name="ORM">ORM bezeichnet ein Programmierkonzept, bei dem Objekte einer Programmiersprache auf
97+
Datenbanktabellen abgebildet werden. Es ermöglicht Entwicklern, mit Objekten zu arbeiten, statt direkt
98+
SQL-Abfragen zu schreiben. Dadurch wird die Arbeit mit Datenbanken in objektorientierten Sprachen wie Java
99+
einfacher, konsistenter und weniger fehleranfällig. Beispiele für ORM-Frameworks in Java sind Hibernate oder
100+
EclipseLink.</term>
101+
<term name="Overhead">Overhead bezeichnet den zusätzlichen Aufwand oder die zusätzlichen Ressourcen, die für die
102+
Ausführung eines Programms, einer Methode oder eines Systems benötigt werden, ohne dass direkt produktive Arbeit
103+
geleistet wird. Darunter können Speicherverbrauch, zusätzliche Berechnungen, Verwaltungslogik oder
104+
Kommunikationsaufwand fallen.</term>
68105
<term name="PascalCase-Notation">Die PascalCase-Notation bezeichnet eine Schreibweise, wobei der Anfangsbuchstabe
69106
mit einem Großbuchstaben und jedes weitere Wort ebenfalls mit einem Großbuchstaben geschrieben wird.</term>
107+
<term name="POJO">POJOs sind einfache Java-Klassen ohne spezielle Vorgaben oder Abhängigkeiten von Frameworks. Sie
108+
dienen als „reine“ Daten- oder Logikträger und stellen das Grundkonzept dar, auf dem DTOs oder Java Beans
109+
aufbauen können.</term>
70110
<term name="Serialization">Unter Serialisierung wird das Konvertieren des Zustands eines Objekts in eine Form
71111
verstanden, die erhalten oder transportiert werden kann. Das Gegenstück zur Serialisierung ist die
72112
Deserialisierung, die einen Stream in ein Objekt konvertiert.</term>
113+
<term name="SRP">Single Responsibility Principle (SRP): Eine Klasse sollte nur einen Grund haben, sich zu ändern.
114+
D. h. sie sollte eine einzige, klar definierte Verantwortung haben.</term>
73115
<term name="SOLID">Das SOLID-Prinzip bezieht sich auf eine Reihe von (5) Designprinzipien, bestehend aus dem Single
74116
Responsibility Principle (SRP), Open/Closed Principle (OCP), Liskov Substitution Principle (LSP), Interface
75117
Segregation Principle (ISP) und dem Dependency Inversion Principle (DIP). Sie werden in der objektorientierten
76-
Programmierung angewendet.</term>
118+
Programmierung (OOP) angewendet.</term>
77119
<term name="String-Pool">Der String-Pool stellt sicher, dass identische Zeichenketten im Speicher nur einmal
78120
existieren.</term>
79121
<term name="Top-Level-Class">Top-Level-Klassen sind Klassen, die direkt innerhalb einer Datei definiert werden und

docs/ta.tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<toc-element topic="tech-archive.md">
1010
<toc-element topic="changelog.md"/>
1111
<toc-element topic="digital-toolbox.md"/>
12+
<toc-element topic="glossary.md"/>
1213
</toc-element>
1314
<toc-element topic="00-html.md">
1415
<toc-element topic="01-html-tags-and-elements.md"/>

docs/topics/Java/00-java.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ Installation von Java gegoogelt hat, wird wahrscheinlich schon auf die Begriffe
5454

5555
<note title="Download und LTS Empfehlung">
5656
<p>Für die Entwicklung von Java-Programmen ist die OpenJDK-Distribution
57-
<format color="%NoteLinkColor%">[Eclipse Temurin](https://adoptium.net)</format> von Adoptium und davon die
58-
Installation eines <format color="%NoteLinkColor%">Long Term Support-OpenJDK</format> zu empfehlen, da dieses über
59-
einen längeren Zeitraum weiterentwickelt und gepatcht wird.</p>
57+
<format color="%NoteLinkColor%"><a href="https://adoptium.net">Eclipse Temurin</a></format> von Adoptium und davon
58+
die Installation eines <format color="%NoteLinkColor%">Long Term Support-OpenJDK</format> zu empfehlen, da dieses
59+
über einen längeren Zeitraum weiterentwickelt und gepatcht wird.</p>
6060
</note>
6161

6262
<p><format color="%Highlight%">Eclipse Temurin</format> ist eine quelloffene Java Standard Edition-Implementierung und
@@ -254,7 +254,7 @@ bietet einige Konfigurationsmöglichkeiten und unterstützt Syntax-Highlighting
254254
<p>Sind alle Einstellungen angepasst, kann rechts unten auf <code>Create</code> geklickt werden und IntelliJ
255255
erstellt das Projekt.</p>
256256
<p>Schließt das Fenster <code>Tip of the day</code> Klickt nun mit rechter Maustaste links im Projektverzeichnis
257-
auf den Ordner <ui-path>src | New | Java Class</ui-path>, gebt z.B. <code>Main</code> als Name für die Klasse
257+
auf den Ordner <ui-path>src | New | Java Class</ui-path>, gebt z. B. <code>Main</code> als Name für die Klasse
258258
ein und bestätigt mit <shortcut>Enter</shortcut>.</p>
259259
<p>Fügt die Code-Zeilen in der folgenden Art hinzu.</p>
260260
<code-block lang="java">

docs/topics/Java/02-java-data-types.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -137,8 +137,8 @@ werden.</p>
137137

138138
<table>
139139
<tr>
140-
<td>Zahlensysteme</td>
141-
<td>Präfix</td>
140+
<td width="50%">Zahlensysteme</td>
141+
<td width="50%">Präfix</td>
142142
</tr>
143143
<tr>
144144
<td>Binär</td>
@@ -164,9 +164,9 @@ werden.</p>
164164
int hexadecimal = 0x2A;
165165
</code-block>
166166

167-
### Gleitkommazahlen {id="floating-point-numbers"}
167+
### Fließkommazahlen {id="floating-point-numbers"}
168168

169-
<p>Um Gleitkommazahlen darstellen zu können, wurden die Datentypen <code>float</code> und <code>double</code>
169+
<p>Um Fließkommazahlen darstellen zu können, wurden die Datentypen <code>float</code> und <code>double</code>
170170
eingeführt. Soll der Restwert berechnet werden, wird dafür der Operator <code>%</code> verwendet. Das folgende Beispiel
171171
zeigt 4 Varianten für die Kennzeichnung einer Kommazahl.</p>
172172

@@ -217,13 +217,13 @@ zeigt 4 Varianten für die Kennzeichnung einer Kommazahl.</p>
217217
<video src="https://www.youtube.com/watch?v=PZRI1IfStY0"></video>
218218
</note>
219219

220-
<p>Gleitkommazahlen können auch die wissenschaftliche Notation repräsentieren. Diese kann direkt angewendet werden.</p>
220+
<p>Fließkommazahlen können auch die wissenschaftliche Notation repräsentieren. Diese kann direkt angewendet werden.</p>
221221

222222
<code-block lang="java">
223223
double d = 1e-10;
224224
</code-block>
225225

226-
### Datentyp `char` {id="data-type-character"}
226+
### Datentyp <code>char</code> {id="data-type-character"}
227227

228228
<p>Der Datentyp <code>char</code> ist für die Darstellung eines einzelnen Zeichens verantwortlich. <code>char</code>
229229
steht als Abkürzung für "Character". Intern werden die Zeichen als Unicode (16-Bit-Dualzahl) dargestellt. Mit anderen
@@ -288,7 +288,7 @@ eingeleitet wird und dazu dient, spezielle oder nicht druckbare Zeichen darzuste
288288
</tr>
289289
</table>
290290

291-
### Datentyp `boolean` {id="data-type-boolean"}
291+
### Datentyp <code>boolean</code> {id="data-type-boolean"}
292292

293293
<p>Vergleiche werden mit dem Typ <code>boolean</code> realisiert. Beispielsweise um zu prüfen, ob eine Zahl größer ist
294294
als eine andere. Die einzigen <format color="%LinkColor%"><a href="01-java-token.md#literals">Literale</a></format> die

docs/topics/Java/03-java-variables.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ Ende des <format color="%LinkColor%"><a href="09-java-methods.md#static-method-c
349349
da sie nur innerhalb des 2. bzw. 3. Blocks existieren. Dasselbe gilt für den Variablenzugriff <code>k</code> im 2.
350350
Anweisungsblock.</p>
351351

352-
![03_java_variables_1.jpg](../../images/03_java_variables_1.jpg){width="400"}
352+
<img src="../../images/03_java_variables_1.jpg" width="400" alt="Meme: Variable Scopes – Urheber: Mina Talaat" />
353353

354354
## Typisierung {id="typing"}
355355
### Starke vs. schwache Typisierung {id="strong-vs-weak-typing"}

docs/topics/Java/09-java-methods.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ einer <format color="%LinkColor%"><a href="07-java-loops.md">Schleife</a></forma
363363
gesetzt, wenn es darum geht, robuste Software zu schreiben.</p>
364364
</note>
365365

366-
<img src="../../images/09_java_methods_1.jpg" alt="Recursion Meme" width="400" />
366+
<img src="../../images/09_java_methods_1.jpg" alt="Meme: Recursion – Urheber: Quelle unbekannt" width="400" />
367367

368368
## Die `Math`-Klasse {id="the-math-class"}
369369

docs/topics/Java/10-java-classes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -664,7 +664,7 @@ veränderbare Daten benötigt werden.</p>
664664
System.out.println(point); // Point[x=34.5, y=23.0]
665665
</code-block>
666666

667-
### Aktivierung von Records {id="activation-of-records"}
667+
### Aktivierung von Records vor Java 16 {id="activation-of-records-before-java-16"}
668668

669669
<list>
670670
<li><p>Für Versionen vor Java 14 sind Records nicht als Sprachfunktion verfügbar.</p></li>

0 commit comments

Comments
 (0)