Prog. 2 Flashcards

1
Q

Vorteile der Versionsverwaltung

A

Nachverfolgbarkeit aller Änderungen über die Zeit
Unterstützung für kollaboratives Arbeiten
Verwaltung verschiedener Projektversionen
Sicheres Backup der Dateien
Unterstützung für Branching und Merging

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist ein Git Repository

A

Ein Speicherort, der alle Dateien und kompletten Versionsverlauf eines Projektes enthält

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Welche Komponente sind am Repo beteiligt

A

Arbeitsverzeichnig
Staging Area
Lokales Repo
Remote Repo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie interagieren Git Komponente untereinander?

A

git add zu Staging
git commit ins lokale Repo
git push ins remote Repo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wichtige Git Commands und Auswirkungen

A

git init: initialisiert / erstellt Repo
git clone: Klont ein Repo
git add: Fügt Änderungen zu Staging Area hinzu
git commit: Speichert Änderungen ins Repo
git push: Überträgt Änderungen ins remote Repo
git pull: Holt Änderungen von remote Repo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Unterschied Git und GitLab

A

Git: Lokales Versionskontrollsystem
GitLab: Webbasierte Plattform mit zusätzlichen Funktionen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist ein Merge in Git

A

Zusammenführen von Änderungen aus verschiedenen Branches, wenn parallele Entwicklungsstränge integriert werden sollen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was beschreibt die Staging Area?

A

Bereich für Änderungen die im nächsten Commit gespeichert werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Befehl zum Status prüfen in git

A

Git status

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist eine Exception?

A

Laufzeitfehler der auftritt, wenn Programm auf unerwartete Situation stößt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wozu Try/Catch

A

Fangen Exceptions ab und ermöglichen Fehlerbehandlung ohne das Programm zu beenden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Unterschied checked und unchecked Exception

A

Checked Exceptions werden vom Compiler noch vor kompilieren des Programms gemeldet und als fehler markiet das diese behandelt werden müssen

Unchecked Exception verhindern nicht das das programm kompiliert

!!!WICHTIG!!!
In beiden Fällen stürtzt das Programm ab wenn eine Exception nicht behandelt wird! Egal ob Checked oder Unchecked!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist ein Finally Block

A

Führt Code immer aus, unabhängig ob Exception auftritt, z.B zum freigeben von Ressourcen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind die Vor- und Nachteile von zentralisiertem und lokalisiertem Exception Handling?

A

Zentralisiert: Einfachere Wartung aber weniger spezifische Fehlerbehandlung
Lokalisiert: Detaillierte Fehlerbehandlung, aber kann komplexer sein

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was versteht man unter defensiver Programmierung

A

Programmiertechnik, die darauf abzielt potentielle Fehler durch sorgfältige Überprüfung und Validierung von Eingaben und zuständen zu vermeiden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie müssen checked Exceptions behandelt werden?

A

Immer mit Try-Catch oder throws

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Von welcher Klasse müssen Unchecked Exceptions erben?

A

RunTimeException

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Wofür wird Try with Resources verwendet

A

Zur automatischen Freigabe von Ressourcen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was ist ein Breakpoint

A

Punkt im Quellcode, an dem Ausführung pausiert wird um den Zustand der Software zu prüfen und Fehler zu finden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Komponententest

A

Testet einzelne Module oder Komponente der Software auf korrekte Funktion
Isolierte Teile des Codes werden getestet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Integrationstest

A

Prüft korrekte Zusammenarbeit mehrere Komponenten
Prüft Interaktion zwischen den Komponenten

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Systemtests

A

Prüft Gesamtfunktion des Systems gemäß der Anforderungen
Alle Komponenten werden integriert und getestet
Prüft Gesamtverhalten des Systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Regressionstest

A

Prüft, ob Änderungen in der Software ungewollte Effekte in bereits funktionierenden Teilen verursacht haben
Sicherstellung, dass bisherige Funktionalität bestehen bleibt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Unit Testing

A

Testmethode, bei der einzelne Module isoliert getestet werden, um erwartete Funktion sicherzustellen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Erläutern Sie den Unterschied und die Verwendungsweise der Annotationen @BeforeEach und @BeforeAll.
@BeforeEach: Wird vor jedem Test in einer Testklasse ausgeführt @BeforeAll: Wird einmal vor dem ersten Test in einer Testklasse ausgeführt
26
Testgetriebene Entwicklung
TDD bedeutet, dass Tests vor der Implementierung geschrieben werden, um Anforderungen und Codequalität zu verbessern
27
Wie kann man effizient nach Fehlern im Code suchen
Debugging
28
Wie nennt man einen Breakpoint, der unter einer spezifischen Bedingung anhält
Conditional Breakpoint
29
Welches Framework wird in Java zum Komponententest verwendet?
JUnit5
30
Wie nennt man die Methode bei der Softwaretests vor den zu testenden Komponenten erstellt werden?
TDD (Test driven development)
31
Welche JUnit Annotation markiert eine Test Methode
@Test
32
Mit welcher JUnit-Assertion Methode kann eine Bedingung auf Wahrheit geprüft werden
assertTrue
33
Welches Interface beschreibt eine Collection, die keine Duplikate erlaubt
Set Interface
34
Welches Interface beschreibt eine geordnete Collection, die Duplikate erlauben?
List Interface
35
Welches Interface beschreibt eine Zuordnung von Schlüsselwörtern (Key) zu Werten (Value)
Map Interface
36
Drei verschiedene Wege, um über ein Element einer Liste zu iterieren
For-Schleife for (Element element : list) { // Verarbeitung des Elements } iterator Iterator iterator = list.iterator(); while (iterator.hasNext()) { Element element = iterator.next(); // Verarbeitung des Elements } ListIterator ListIterator listIterator = list.listIterator(); while (listIterator.hasNext()) { Element element = listIterator.next(); // Verarbeitung des Elements vorwärts } // Rückwärts durch die Liste iterieren while (listIterator.hasPrevious()) { Element element = listIterator.previous(); // Verarbeitung des Elements rückwärts }
37
Queue Interface
Queue Interface definiert Collection zur Verwaltung von Elementen nach FIFO
38
Wichtige Methode Queue Interface
offer(E e): Fügt ein Element am Ende der Queue hinzu und gibt true zurück wenn erfolgreich poll(): Entfernt und gibt das Element am Anfang der Queue zurück oder null wenn leere Queue peek(): Gibt Element am Anfang der Queue zurück, ohne es zu entfernen oder null wenn leere Queue
39
FIFO
Element das zuerst in Queue eingefügt wurde auch als erstes wieder entfernt wird Neue Elemente werden hinten angefügt und Elemente werden vorne entfernt
40
Welches Konzept wird für Typsicherheit verwendet
Generics
41
Was ist der Hauptvorteil von Generics
Type Safety zur Compile Zeit
42
Welches Problem wird durch Generics behoben
Laufzeitfehler durch falsches Typ Casting
43
Was bewirkt <>
Leitet Datentyp automatisch ab und vereinfacht Syntax
44
Welcher Prozess beschreibt das Entfernen von generischen Typinformationen
Type Erasure
45
Vorteile von Generics
Sicherheit: Typsicherheit zu Compilezeit Wiederverwendbarkeit: Flexibel und wiederverwendbar, da verschiedene Datentypen genutzt werden können Lesbarkeit: Datentyp muss nicht explizit konvertiert oder überprüft werden
46
Was versteht man unter Bounded Type Parameter
Setzen obere Grenze für die Typen fest, die ein Generic annehmen kann, z.B. durch Interfaces oder Klassen denen der Typ entsprechen muss
47
Warum existieren Raw types und warum sollte man sie in neuem Code nicht verwenden
Sind für Abwärtskompatibilität mit älteren Java Code vorhanden, der vor der Einführung von generics geschrieben wurde
48
Was versteht man unter Type Erasure
Prozess, bei dem Generics in Java zur Compile Zeit entfernt werden und durch ihre ungebundenen Raw Types ersetzt werden, um die Abwärtskompabilität zu gewährleisten
49
Grundprinzip I/O
Erfolgt über Streams, Daten werden von Input Streams gelesen und an Output Streams geschrieben Streams ermöglichen Verarbeitung von Daten in Bytes oder Zeichen
50
Character Encoding
Definiert, wie Zeichen in Bytes umgewandelt und gespeichert werden Legt fest, wie Text in unterschiedlichen Zeichensätzen kodiert und dekodiert werden
51
Wofür steht U+1F602? Was hat es damit auf sich?
Unicode-Codepunkt für ein Emoji Codepunkte repräsentieren Zeichen und Symbole in verschiedenen Sprachen und Zeichensätzen
52
Unterschied FileInputStream und FileReader
InputStream: Liest Daten als Bytes aus einer Datei zum lesen von binären Dateien (Bilder, Videos) FileReader: Liest Daten als Zeichen mit systemdefinierten Kodierung aus einer Datei (Textdateien)
53
Vorteil von Buffered Streams
Verwenden internen Puffer um Lese und Schreibvorgänge zu optimieren Reduzieren Anzahl der I/O Zugriffe und verbessern Performance
54
Try with Resources
Stellt sicher, dass Ressourcen wie Dateien oder Verbindungen ordnungsgemäß geschlossen werden Automatisches schließen von Ressourcen bei Ausnahmen Kompakterer Code und weniger Fehleranfälligkeit
55
Hauptzweck von java Streams
Daten zwischen Quelle und Ziel übertragen
56
Welche Klasse zum lesen von Byte Daten aus einer Datei
FileInputStream
57
Methode zum schließen von Streams
close()
58
Character Encoding
Zuweisung eines numerischen Wertes zu einem Zeichen
59
Wie heißt das automatische Ressourcen Management
Try with resources
60
Was ist die MVC Architektur
Ein Designmuster zur Trennung von Daten (Model, View und Controller) in einer Software Verbessert Modularität und Wartbarkeit
61
Wofür ist die JFrame Klasse verantwortlich
Klasse in java, die ein Fenster für eine GUI darstellt Enthält Titel, Menüs, Buttons und weitere Komponenten
62
Unterschied JFrame und JPanel
JFrame: Stellt Fenster dar, das unabhängig von anderen Fenstern ist und das gesamte Anwendungsfenster enthält JPanel: Container um anderen GUI Komponenten (wie Buttons, Labels) innerhalb eines Fensters zu organisieren
63
Welches Element für Lautstärkeregler
JSlider bietet einfache Möglichkeit numerischen Wert zwischen Minimum und Maximum darzustellen
64
Wozu ein Layoutmanager
Wird genutzt um Position und Größe von GUI Komponenten innerhalb eines Containers zu verwalten Helfen GUI Elemente auf verschiedenen Größen und Auflösungen darzustellen
65
Unterschied Border- und FlowLayout
BorderLayout: Positioniert Komponenten an Rändern eines Containers (Norden, Süden, Osten, Weste, Zentrum) FlowLayout: Ordnet Komponenten in einer Reihe an, horizontal oder vertikal
66
Event Handling
Beschreibt Verarbeitung von Ereignissen, die während der Ausführung auftreten (Mausklicks oder Tastatureingaben)
67
Listener-Klasse
Implementiert Interface, um auf spezifische Ereignisse zu reagieren, z.B. ActionListener für Mausklicks
68
Welchen Event Handler für Veränderung von Textfeldern
DocumentListener
69
Unterschied innere und anonyme Klasse
Innere: Klasse, die innerhalb einer anderen klasse definiert ist und Zugriff auf deren Attribute hat Anonym: Spezielle Form einer Klasse ohne eigenen Namen, oft für Event Handling oder Implementierung von Interfaces
70
Functional Interface
Interface mit genauer einer abstrakten Methode Wird für Lambda Ausdrücke verwendet
71
Wozu Lambda Ausdrücke
Bieten kompakte Möglichkeit anonyme Funktionen zu definieren und werden häufig für Implementierung von Functional Interfaces verwendet
72
Konzept von Java Properties
Speicher Konfigurationsdaten als Schlüssel-Wert-Paare Hauptzweck ist die Verwaltung von Einstellungen in Java-Anwendungen
73
In welchen Format werden Java Properties Dateien typischerweise gespeichert
.properties, das eine Schlüssel-Wert-Paare in Textform enthält
74
Wie werden Daten aus Properties Datei gelesen?
Mit Java.util.properties und Methode laod(InputStream), die die Datei lädt und Schlüssel-Wert-Paare in Properties Objekt einliest
75
Wie werden Daten in Properties Datei geschrieben
Mit der Methode store(OutputStream, String) der Klasse java.util.properties
76
Wie wird ein einzelner Property Wert abgerufen
Verwenden der Methode getProperty(String key) der Klasse java.util.Properties, um den Wert eines Schlüssels abzurufen.
77
Wie wird ein einzelner Property-Wert gesetzt
Verwenden der Methode setProperty(String key, String value) der Klasse java.util.Properties, um einen Schlüssel-Wert-Paar hinzuzufügen oder zu aktualisieren.
78
Was sind „Nested Properties“ und wozu werden sie verwendet
„Nested Properties“ verwenden Punkte oder andere Trennzeichen im Schlüssel, um hierarchische Strukturen in einer Properties-Datei darzustellen, z.B. für komplexe Konfigurationen oder verschachtelte Einstellungen.
79
Was ist ein Design Pattern
Lösung für wiederkehrende Probleme in der Softwareentwicklung, die sich in bestimmten Kontexten bewährt hat
80
Was enthält die Beschreibung eines Design Patterns
Informationen über das Problem, das es löst, Struktur der Lösung, beteiligte Klassen und Interaktion und Vor und Nachteile
81
Was ist ein Anti-Pattern? Erklären Sie Anti-Pattern am Beispiel des “God Object”.
Beschreibt ineffiziente Lösung für ein problem God Object: Klasse hat zu viele Verantwortlichkeiten
82
Open Closed Prinzip
Softwareentitäten (Klassen, Module etc) sollten offen für Erweiterungen sein aber geschlossen für Modifikation Neue Funktionen sollten bestehen code nicht ändern
83
Single Responsibility Prinzip
Klasse die nur eine Verantwortlichkeit haben soll
84
Wofür stehen i18n und l10n und was hat es damit auf sich?
i18n: Internationalisierung, Anpassung von Software für verschiedene Sprachen und Regionen l10n: Lokalisierung, Anpassung von Software für spezifische Sprachen und kulturelle Anforderungen
85
Locale
Identifiziert spezifische geografische, politische oder kulturelle Region
86
Resource Bundle
Sammlung ovn Ressourcen für verschiedene Sprachen und Regionen Verwendung um Lokalisierung von Software zu unterstützen
87
Vorteile von Date/Time API ggü Calendar/Date
Verbesserte Lesbarkeit und Benutzerfreundlichkeit Bessere Thread-Sicherheit durch Unveränderlichkeit Mehr Flexibilität und Funktionen
88
Year 2038 Problem
Begrenzung der Darstellung von Zeitpunkten in vielen Computersystemen, die nur 32 Bit Speicher für Zeitstempel verwenden Ab 19.01.2038 könnten Systeme Probleme haben mit Zeitangaben umzugehen
89
Was ist gut bzw schlecht an folgendem Code try { ... } catch (Exception e) { // this should never happen }
Gut, dass Try Catch verwendet wird Schlecht, dass mit Exception e versucht wird alle Fehlerarten zu behandeln, was meist nicht möglich ist Fehler können trotzdem auftreten
90
Wie wird ein KeyListener implementiert?
inputTextArea.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { // Code, der ausgeführt wird, wenn eine Taste getippt wird } @Override public void keyPressed(KeyEvent e) { // Code, der ausgeführt wird, wenn eine Taste gedrückt wird } @Override public void keyReleased(KeyEvent e) { // Code, der ausgeführt wird, wenn eine Taste losgelassen wird } });
91
Wie kann eine Datei in Java vollständig eingelesen werden?
String content = new String(Files.readAllBytes(file.toPath()));
92
Was ist ein RessourceBundle und wie wird es verwendet?
Java-Klasse die verwendet wird um lokalisierte Ressourcen zu laden für internationalisierung RessourceBundle resourceBundle = ResourceBundle.getBundle("Name vom Bundle", Locale.GERMAN);
93
Wie können mit Locale felder automatisch angepasst werden?
mit einem ActionListener der eine Methode updateFields aufruft localeComboBox.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Locale selectedLocale = (Locale) localeComboBox.getSelectedItem(); resourceBundle = ResourceBundle.getBundle("LanguageBundle", selectedLocale); updateFields(selectedLocale); } }); updateFields beinhaltet die inhalte die angepasst werden sollen bsp: customer.setText(resourceBundle.getString(Key) Key ist hier in bundle definiert
94
Was ist die SimpleDateFormat Klasse und wie wird sie verwendet?
Die SimpleDateFormat Klasse wird in Java verwendet, um Datums- und Zeitangaben in benutzerdefinierten Mustern zu formatieren und zu analysieren. Sie ermöglicht die Umwandlung von Date Objekten in String und umgekehrt nach einem bestimmten Format. SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = dateFormat.format(new Date()); System.out.println(formattedDate); // Ausgabe: 2023-06-25 12:34:56
95
Wie kann der Inhalt einer Datei gelöscht werden?
try (BufferedWriter bw = new BufferedWriter(new FileWriter("file.txt"))) { // This will clear the file content } catch (IOException e) { e.printStackTrace(); }
96
Wie liest man binäre Daten aus einer Datei in Java?
try (DataInputStream dataInputStream = new DataInputStream(new FileInputStream("file.bin"))) { // Lesen der binären Daten } catch (IOException e) { e.printStackTrace(); }
97
Was macht die Methode available() in einem DataInputStream?
Die Methode available() gibt die Anzahl der Bytes zurück, die von diesem Eingabestream ohne Blockierung gelesen werden können. Dies ist nützlich, um zu überprüfen, ob noch Daten zum Lesen vorhanden sind, bevor ein Lesevorgang gestartet wird.
98
Konzept functional interface
Definiert eine abstrakte Methode und verwendet Lambda ausdrücke
99
Konzept Lambda ausdrücke
Ermöglichen kompakte Definition von anonymen Funktionen als Argumente für functional interfaces
100