Klausurfragen - Teil 1 Flashcards
(10 cards)
Was ist der Unterschied zwischen Callables & Runnables?
Der Unterschied zwischen Callables und Runnables liegt in ihrer Rückgabe und Ausnahmebehandlung:
- Runnable: Hat keine Rückgabe (void) und kann keine geprüften Ausnahmen (checken exceptions) werfen.
- Callable: Gibt ein Ergebnis zurück (Generics <T>) und kann geprüfte Ausnahmen (checked exceptions) werfen.</T>
Was ist der Unterschied zwischen Private und Protected?
- Private: Die Methode oder das Attribut ist nur innerhalb der gleichen Klasse sichtbar.
- Protected: Die Methode oder das Attribut ist in der gleichen Klasse, in Subklassen und innerhalb des gleichen Pakets sichtbar.
Was ist eine abstrakte Klasse?
Eine abstrakte Klasse ist eine Klasse, die nicht direkt instanziiert werden kann. Sie dient als Vorlage für Subklassen.
System.out.println() alle Therme erklären
- System: Eine Klasse aus dem java.lang Paket, die grundlegende Systemfunktionen bereitstellt.
- out: Eine statische Instanzvariable von System, die eine Instanz von PrintStream repräsentiert.
- println(): Eine Methode der PrintStream-Klasse, die den übergebenen Wert ausgibt und einen Zeilenumbruch anhängt.
Was ist der Nachteil beim Try-Catch-Finally-Block?
Ein Nachteil des try-catch-finally-Block ist die Leistungs- und Wartungseinbuße
Wie ist die Sichtbarkeit beim Enum Constructor?
Der Konstruktor eines Enums ist immer privat, da sie instanzkontrolliert sind
Warum kann man auf ein Objekt nicht zugreifen, wenn man private, package, private oder protected nutzt?
Weil die Sichtbarkeit von Objekten durch Zugriffsmodifikatoren geregelt ist
Welche Probleme können bei „Synchronize“ auftreten?
- Deadlocks: Zwei Threads warten aufeinander und blockieren sich gegenseitig.
- Performance-Einbußen: Synchronisation reduziert die Parallelität, da nur ein Thread zur gleichen Zeit Zugriff hat.
- Race Conditions (trotz Synchronisation): Wenn mehrere Locks verwendet werden, können unsichere Zustände entstehen.
- Starvation: Ein Thread erhält keinen Zugriff, weil andere Threads ständig bevorzugt werden.
- Overhead: Synchronisierung verursacht zusätzlichen Verwaltungsaufwand und erhöht den Ressourcenverbrauch.
Dining Philosophers -> Welche Situationen können auftreten?
- Deadlock: Jeder Philosoph hält eine Gabel und wartet auf die zweite -> keiner kann essen.
- Starvation (Verhungern): Ein Philosoph bekommt nie Zugriff auf beide Gabeln, da andere bevorzugt werden.
- Livelock: Philosophen geben die Gabeln immer wieder auf und greifen sie gleichzeitig wieder -> kein Fortschritt.
- Fairness-Probleme: Manche Philosoph*innen essen öfter als andere, wenn das Scheduling unfair ist.
Was ist besser beim Liste erstellen?
<List> listOne = new <ArrayList>;
<ArrayList listTwo = new <ArrayList>;
</ArrayList></ArrayList></List>
<List> listOne = new <ArrayList>;
Immer das Interfa
* Flexibilität
* Bessere Wartbarkeit
* Polymorphismus
</ArrayList></List>