Collections, Locks und volatile ?

Hi,

Ich habe alles schon gegoogelt, aber manche Fragen konnten nicht so beantwortet werden, sodass ich es verstanden habe:

1)Was ist der Unterschied zwischen Collections und Containern?

2)Jede Collection extends Iterable<E>. Sind damit unter anderem alle Datenstrukturen wie HashSet etc. oder sogar JFrame mit gemeint?

3)JFrame ist bekanntlich ein Top-Level Container. Was genau ist der ContentPane? Wird der Inhalt im ContentPane gespeichert oder im JFrame?

4)Was ist der große Unterschied zwischen Semaphoren und Reentrant Locks?

5)volatile heißt ja, dass der Lese- und Schreibprozess eine Operation wird.
Warum benutzt man nicht immer volatile, anstatt synchronized zu benutzen, da es ja mit volatile auch zu keinen Dataraces kommen kann?

Die Fragen sind nicht für ein Test o.ä. sondern nur für mein eigenes Allgemeinwissen 🙂

Danke für jede Antwort 🙂
 
Zu erstens in welchem Kontext stehen deine Container? Container sind normalerweise Aggregationen für Swing-Objekte. Collections ist ein ganzes Framework an Klassen, die andere Klassen beinhalten (manche mit besonderen Eigenschaften, wie "nur einzigartige Objekte enthalten")

2) JFrame hat nichts mit Collections zu tun. Iterable gibt es damit du for-each Schleifen nutzen kannst.

3) JFrame besitzt nicht nur die Hauptanzeige (ContentPane), sondern noch diverse Eigenschaften, wie Schließ- und Minimieroption (Das ist dann der ganze Container - oder besser Top-Level Container)

4) Semaphoren sind wie Türsteher, sie lassen eine gewisse Anzahl in eine Methode rein. ReentrantLocks sind wie Klofrauen mit einer Kabine, die lassen immer nur einen rein.

5) volatile: HIER eine gute Erklärung
 

Zurück
Oben