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
Q

Erläutern Sie den Unterschied und die Verwendungsweise der Annotationen @BeforeEach und @BeforeAll.

A

@BeforeEach: Wird vor jedem Test in einer Testklasse ausgeführt
@BeforeAll: Wird einmal vor dem ersten Test in einer Testklasse ausgeführt

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

Testgetriebene Entwicklung

A

TDD bedeutet, dass Tests vor der Implementierung geschrieben werden, um Anforderungen und Codequalität zu verbessern

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

Wie kann man effizient nach Fehlern im Code suchen

A

Debugging

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

Wie nennt man einen Breakpoint, der unter einer spezifischen Bedingung anhält

A

Conditional Breakpoint

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

Welches Framework wird in Java zum Komponententest verwendet?

A

JUnit5

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

Wie nennt man die Methode bei der Softwaretests vor den zu testenden Komponenten erstellt werden?

A

TDD (Test driven development)

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

Welche JUnit Annotation markiert eine Test Methode

A

@Test

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

Mit welcher JUnit-Assertion Methode kann eine Bedingung auf Wahrheit geprüft werden

A

assertTrue

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

Welches Interface beschreibt eine Collection, die keine Duplikate erlaubt

A

Set Interface

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

Welches Interface beschreibt eine geordnete Collection, die Duplikate erlauben?

A

List Interface

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

Welches Interface beschreibt eine Zuordnung von Schlüsselwörtern (Key) zu Werten (Value)

A

Map Interface

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

Drei verschiedene Wege, um über ein Element einer Liste zu iterieren

A

For-Schleife
for (Element element : list) {
// Verarbeitung des Elements
}
iterator
Iterator<Element> iterator = list.iterator();
while (iterator.hasNext()) {
Element element = iterator.next();
// Verarbeitung des Elements
}
ListIterator
ListIterator<Element> 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
}</Element></Element>

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

Queue Interface

A

Queue Interface definiert Collection zur Verwaltung von Elementen nach FIFO

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

Wichtige Methode Queue Interface

A

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

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

FIFO

A

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

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

Welches Konzept wird für Typsicherheit verwendet

A

Generics

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

Was ist der Hauptvorteil von Generics

A

Type Safety zur Compile Zeit

42
Q

Welches Problem wird durch Generics behoben

A

Laufzeitfehler durch falsches Typ Casting

43
Q

Was bewirkt <>

A

Leitet Datentyp automatisch ab und vereinfacht Syntax

44
Q

Welcher Prozess beschreibt das Entfernen von generischen Typinformationen

A

Type Erasure

45
Q

Vorteile von Generics

A

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
Q

Was versteht man unter Bounded Type Parameter

A

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
Q

Warum existieren Raw types und warum sollte man sie in neuem Code nicht verwenden

A

Sind für Abwärtskompatibilität mit älteren Java Code vorhanden, der vor der Einführung von generics geschrieben wurde

48
Q

Was versteht man unter Type Erasure

A

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
Q

Grundprinzip I/O

A

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
Q

Character Encoding

A

Definiert, wie Zeichen in Bytes umgewandelt und gespeichert werden
Legt fest, wie Text in unterschiedlichen Zeichensätzen kodiert und dekodiert werden

51
Q

Wofür steht U+1F602? Was hat es damit auf sich?

A

Unicode-Codepunkt für ein Emoji
Codepunkte repräsentieren Zeichen und Symbole in verschiedenen Sprachen und Zeichensätzen

52
Q

Unterschied FileInputStream und FileReader

A

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
Q

Vorteil von Buffered Streams

A

Verwenden internen Puffer um Lese und Schreibvorgänge zu optimieren
Reduzieren Anzahl der I/O Zugriffe und verbessern Performance

54
Q

Try with Resources

A

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
Q

Hauptzweck von java Streams

A

Daten zwischen Quelle und Ziel übertragen

56
Q

Welche Klasse zum lesen von Byte Daten aus einer Datei

A

FileInputStream

57
Q

Methode zum schließen von Streams

A

close()

58
Q

Character Encoding

A

Zuweisung eines numerischen Wertes zu einem Zeichen

59
Q

Wie heißt das automatische Ressourcen Management

A

Try with resources

60
Q

Was ist die MVC Architektur

A

Ein Designmuster zur Trennung von Daten (Model, View und Controller) in einer Software
Verbessert Modularität und Wartbarkeit

61
Q

Wofür ist die JFrame Klasse verantwortlich

A

Klasse in java, die ein Fenster für eine GUI darstellt
Enthält Titel, Menüs, Buttons und weitere Komponenten

62
Q

Unterschied JFrame und JPanel

A

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
Q

Welches Element für Lautstärkeregler

A

JSlider bietet einfache Möglichkeit numerischen Wert zwischen Minimum und Maximum darzustellen

64
Q

Wozu ein Layoutmanager

A

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
Q

Unterschied Border- und FlowLayout

A

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
Q

Event Handling

A

Beschreibt Verarbeitung von Ereignissen, die während der Ausführung auftreten (Mausklicks oder Tastatureingaben)

67
Q

Listener-Klasse

A

Implementiert Interface, um auf spezifische Ereignisse zu reagieren, z.B. ActionListener für Mausklicks

68
Q

Welchen Event Handler für Veränderung von Textfeldern

A

DocumentListener

69
Q

Unterschied innere und anonyme Klasse

A

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
Q

Functional Interface

A

Interface mit genauer einer abstrakten Methode
Wird für Lambda Ausdrücke verwendet

71
Q

Wozu Lambda Ausdrücke

A

Bieten kompakte Möglichkeit anonyme Funktionen zu definieren und werden häufig für Implementierung von Functional Interfaces verwendet

72
Q

Konzept von Java Properties

A

Speicher Konfigurationsdaten als Schlüssel-Wert-Paare
Hauptzweck ist die Verwaltung von Einstellungen in Java-Anwendungen

73
Q

In welchen Format werden Java Properties Dateien typischerweise gespeichert

A

.properties, das eine Schlüssel-Wert-Paare in Textform enthält

74
Q

Wie werden Daten aus Properties Datei gelesen?

A

Mit Java.util.properties und Methode laod(InputStream), die die Datei lädt und Schlüssel-Wert-Paare in Properties Objekt einliest

75
Q

Wie werden Daten in Properties Datei geschrieben

A

Mit der Methode store(OutputStream, String) der Klasse java.util.properties

76
Q

Wie wird ein einzelner Property Wert abgerufen

A

Verwenden der Methode getProperty(String key) der Klasse java.util.Properties, um den Wert eines Schlüssels abzurufen.

77
Q

Wie wird ein einzelner Property-Wert gesetzt

A

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
Q

Was sind „Nested Properties“ und wozu werden sie verwendet

A

„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
Q

Was ist ein Design Pattern

A

Lösung für wiederkehrende Probleme in der Softwareentwicklung, die sich in bestimmten Kontexten bewährt hat

80
Q

Was enthält die Beschreibung eines Design Patterns

A

Informationen über das Problem, das es löst, Struktur der Lösung, beteiligte Klassen und Interaktion und Vor und Nachteile

81
Q

Was ist ein Anti-Pattern? Erklären Sie Anti-Pattern am Beispiel des “God Object”.

A

Beschreibt ineffiziente Lösung für ein problem
God Object: Klasse hat zu viele Verantwortlichkeiten

82
Q

Open Closed Prinzip

A

Softwareentitäten (Klassen, Module etc) sollten offen für Erweiterungen sein aber geschlossen für Modifikation
Neue Funktionen sollten bestehen code nicht ändern

83
Q

Single Responsibility Prinzip

A

Klasse die nur eine Verantwortlichkeit haben soll

84
Q

Wofür stehen i18n und l10n und was hat es damit auf sich?

A

i18n: Internationalisierung, Anpassung von Software für verschiedene Sprachen und Regionen
l10n: Lokalisierung, Anpassung von Software für spezifische Sprachen und kulturelle Anforderungen

85
Q

Locale

A

Identifiziert spezifische geografische, politische oder kulturelle Region

86
Q

Resource Bundle

A

Sammlung ovn Ressourcen für verschiedene Sprachen und Regionen
Verwendung um Lokalisierung von Software zu unterstützen

87
Q

Vorteile von Date/Time API ggü Calendar/Date

A

Verbesserte Lesbarkeit und Benutzerfreundlichkeit
Bessere Thread-Sicherheit durch Unveränderlichkeit
Mehr Flexibilität und Funktionen

88
Q

Year 2038 Problem

A

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
Q

Was ist gut bzw schlecht an folgendem Code

try {

    ...

} catch (Exception e) {
    // this should never happen
}
A

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
Q

Wie wird ein KeyListener implementiert?

A

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
Q

Wie kann eine Datei in Java vollständig eingelesen werden?

A

String content = new String(Files.readAllBytes(file.toPath()));

92
Q

Was ist ein RessourceBundle und wie wird es verwendet?

A

Java-Klasse die verwendet wird um lokalisierte Ressourcen zu laden für internationalisierung

RessourceBundle resourceBundle = ResourceBundle.getBundle(“Name vom Bundle”, Locale.GERMAN);

93
Q

Wie können mit Locale felder automatisch angepasst werden?

A

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
Q

Was ist die SimpleDateFormat Klasse und wie wird sie verwendet?

A

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
Q

Wie kann der Inhalt einer Datei gelöscht werden?

A

try (BufferedWriter bw = new BufferedWriter(new FileWriter(“file.txt”))) {
// This will clear the file content
} catch (IOException e) {
e.printStackTrace();
}

96
Q

Wie liest man binäre Daten aus einer Datei in Java?

A

try (DataInputStream dataInputStream = new DataInputStream(new FileInputStream(“file.bin”))) {
// Lesen der binären Daten
} catch (IOException e) {
e.printStackTrace();
}

97
Q

Was macht die Methode available() in einem DataInputStream?

A

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
Q

Konzept functional interface

A

Definiert eine abstrakte Methode und verwendet Lambda ausdrücke

99
Q

Konzept Lambda ausdrücke

A

Ermöglichen kompakte Definition von anonymen Funktionen als Argumente für functional interfaces

100
Q
A