Klausurfragen - Teil 2 Flashcards

(14 cards)

1
Q

Was ist c?
float a = 2.345F;
Number b = a;
float c = (float) b;

A

Der Wert von c ist 2.345F.

Erklärung:
1. float a = 2.345F;
→ a ist eine Gleitkommazahl (float) mit dem Wert 2.345F.
2. Number b = a;
→ a wird als Number gespeichert (Autoboxing zu Float).
3. float c = (float) b;
→ Downcasting von Number zurück zu float.

Da b tatsächlich eine Float-Instanz ist, funktioniert das Casting problemlos, und c erhält den Wert 2.345F.

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

Welche Probleme gibt es und wie kann man es verhindern?
Lock lock = new Lock();
lock.lock();
someOerationA();
someOperationB();
lock.unlock();

A
  1. Deadlock: Falls lock.unlock(); nicht ausgeführt wird (z. B. Wegen einer Exception), bleibt der Lock bestehen und blockiert andere Threads
  2. Fehlendes try-finally: Falls someOperationA() oder someOperationB() eine Exception wirft, wird lock.unlock(); nie erreicht.
  3. Fehlendes Timeout: Falls der Lock nicht rechtzeitig freigegeben wird, könnten Threads dauerhaft blockiert bleiben.

Lösung zur Vermeidung von Problemen:

  • Verwende try-finally, um sicherzustellen, dass der Lock immer freigegeben wird
  • Falls ein Timeout benötigt wird, kann man tryLock() verwenden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist der Unterschied zwischen statischer und dynamischer Typisierung?

A
  • Statische Typisierung: Der Datentyp wird bereits bei der Deklaration festgelegt und kann sich nicht ändern.
  • Dynamische Typisierung: Der Datentyp kann zur Laufzeit wechseln, ohne vorherige Festlegung.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was ist der Unterschied zwischen prozeduraler und objektorientierter Programmierung?

A
  • Prozedurale Programmierung: Fokus auf Anweisungen und Abläufe. Programme werden in Funktionen/Prozeduren unterteilt.
  • Objektorientierte Programmierung (OOP): Fokus auf Objekte, die Daten (Attribute) und Methoden (Verhalten) enthalten. Konzepte wie Kapselung, Vererbung und Polymorphie spielen eine Rolle.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Welche grundlegenden Bestandteile hat eine Klasse (bzw. Objekt)

A
  1. Attribute (Datenfelder) -> Speichern den Zustand des Objekts.
  2. Methoden (Funktionen) -> Definieren das Verhalten des Objekts.
  3. Konstruktoren-> Initialisieren das Objekt beim Erstellen.
  4. Zugriffsmodifikatoren -> Regeln die Sichtbarkeit von Attributen/Methoden (private, public, protected).
  5. Vererbung (optional) -> Eine Klasse kann von einer anderen Klasse erben (extends).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist der Unterschied zwischen einer Klasse und einem Objekt?

A
  • Eine Klasse ist eine Schablone/Vorlage für Objekte (enthält Attribute und Methoden).
  • Ein Objekt ist eine konkrete Instanz einer Klasse mit eigenen Werten.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wozu dient das Schlüsselwort new?

A

Das Schlüsselwort new erzeugt ein neues Objekt der Klasse im Speicher.

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

Was ist ein Konstruktor?

A
  • Eine spezielle Methode, die beim Erstellen eines Objekts aufgerufen wird.
  • Kann Parameter enthalten, um das Objekt zu initialisieren.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wozu dient das Schlüsselwort var und welche Typisierung liegt vor?

A
  • var dient zur Typinferenz - Der Compiler leitet den Typ zur Kompilierzeit automatisch ab.
  • Es handelt sich um statische Typisierung - Typ kann nicht verändert werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wozu dienen Zugriffsmodifikatoren bei den Bestandteilen eines Objektes?

A

Zugriffsmodifikatoren steuern die Sichtbarkeit und den Zugriff auf die Bestandteile eines Objekts (Attribute & Methoden).

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

Welche Zugriffsmodifikatoren gibt es?

A
  • public
  • protected
  • package-private
  • private
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was ist der Unterschied zwischen einer Wertevariable und einer Referenz-Variable?

A
  • Wertevariable: Speichert direkt den Wert (z. B. int, float, char).
  • Referenzvariable: Speichert eine Speicheradresse, die auf ein Objekt verweist
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Die Datentypen in Java lassen sich in zwei große Gruppen einteilen.
Wie heißen diese?

A

Es gibt primitive Datentypen und Referenzdatentypen

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

Was unterscheidet == von der equals Methode?

A
  • == -> Prüft, ob es dasselbe Objekt ist.
  • equals() -> Prüft, ob die Inhalte gleich sind.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly