Welcher Object-Lock-Pool bei static Variablen?

osion

Bekanntes Mitglied
Hallo

Wenn man einen Monitor auf eine nicht-statische Methode setzt, dann befindet sich der Object-Lock-Pool beim Objekt, d.h. bei 'this' und bei einer statischen Methode beim '.class'. Wenn man ein 'synchronized(name)' ausführt, dann befindet sich der Object-Lock-Pool bei 'name'.

Wie ist das jedoch, wenn man 'static' hat, wie es bei 'uniqueID' der Fall ist?
Unbenannt.jpg
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    486,3 KB · Aufrufe: 1

httpdigest

Top Contributor
Wenn man ein 'synchronized(name)' ausführt, dann befindet sich der Object-Lock-Pool bei 'name'.
Letztlich ist es auch bei statischen Variablen dieser Fall. Bei einem static Block ist der Lock immer auf dem Objekt, welches von dem Ausdruck (bei dir) 'name' zurückgeliefert wird.
Es geht also nicht darum, dass 'name' ein Name ist, sondern immer nur ein Ausdruck. Das kann nur eine Variablenreferenz sein oder eben auch ein Methodenaufruf.

Der Lock befindet sich also in deinem Fall immer auf jenem Objekt, welches zu dem Aufrufzeitpunkt in der statischen Variablen gespeichert ist.

Darüber hinaus ist es sehr dubios, dass im Konstruktor von Person der Wert einer statischen Variablen auf der Klasse gesetzt wird.
 
Zuletzt bearbeitet:

osion

Bekanntes Mitglied
Letztlich ist es auch bei statischen Variablen dieser Fall. Bei einem static Block ist der Lock immer auf dem Objekt, welches von dem Ausdruck (bei dir) 'name' zurückgeliefert wird.
Es geht also nicht darum, dass 'name' ein Name ist, sondern immer nur ein Ausdruck. Das kann nur eine Variablenreferenz sein oder eben auch ein Methodenaufruf.

Der Lock befindet sich also in deinem Fall immer auf jenem Objekt, welches zu dem Aufrufzeitpunkt in der statischen Variablen gespeichert ist.

Darüber hinaus ist es sehr dubios, dass im Konstruktor von Person der Wert einer statischen Variablen auf der Klasse gesetzt wird.
Es handelt sich um vergangene Prüfungsfragen. Es ist natürlich so, dass die Konstrukte nicht unbedingt so umgesetzt werden.

Also ist der Lock der gleiche unabhängig davon ob eine Variabel static ist oder nicht?

Als Begründung: Auch wenn ich static bin, habe ich eine unabhängiges Object (in diesem Fall String-Objekt).
 

httpdigest

Top Contributor
Der Lock ist immer jenes Objekt, welches zum Zeitpunkt des Ausführens des synchronized-Blocks durch den Ausdruck in synchronized(<ausdruck>) zurückgeliefert wird. Fertig.
Das ist in diesem Fall also immer das Objekt, welches durch die letzte Instanziierung eines Person Objektes in der statischen Variablen uniqueID gesetzt wurde.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
J Layout Manager, welcher ist der Richtige für mein Program? Java Basics - Anfänger-Themen 1
C Welcher Datenbanktyp ? Java Basics - Anfänger-Themen 7
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
B Datentypen Welcher Typ wird beim Casten übernommen? Java Basics - Anfänger-Themen 12
B Datentypen Datentyp welcher den gleichen Namen wie die Klasse trägt? Java Basics - Anfänger-Themen 1
V JTable welcher Listener ? Java Basics - Anfänger-Themen 7
D Datentypen Welcher ist der beste Datentyp? Java Basics - Anfänger-Themen 28
Tacofan Welcher Button wurde zuerst gedrückt? Java Basics - Anfänger-Themen 4
D Ausgeben welcher Thread gerade Arbeitet Java Basics - Anfänger-Themen 8
L Welcher Algorithmus ist das ? Java Basics - Anfänger-Themen 9
C Datentypen Array-Einträge überhalb der Array-Länge - welcher Wert? Java Basics - Anfänger-Themen 5
H Welcher Html-Parser? Java Basics - Anfänger-Themen 8
V Arraylist: Zählen welcher String am Häufigsten vorkommt Java Basics - Anfänger-Themen 5
S Vererbung/Herausfinden welches Objekt von welcher Klasse Java Basics - Anfänger-Themen 4
Binary.Coder Welcher Datentyp für den Simplex Algorithmus Java Basics - Anfänger-Themen 3
R Welcher Layout Manager-für so ein Fenster? Java Basics - Anfänger-Themen 5
M Properties Eintrag löschen, welcher in der JList "ausgewählt" wurde Java Basics - Anfänger-Themen 2
G Datentypen Welcher Datentyp Java Basics - Anfänger-Themen 2
R Welcher Weg um XML von URL zu laden? Java Basics - Anfänger-Themen 3
B Welcher Feld Typ für verschiedene Datentypen? Java Basics - Anfänger-Themen 4
E Welcher Package Name bei Eclipse/Android? Java Basics - Anfänger-Themen 2
M In welcher *.jar ist ... Java Basics - Anfänger-Themen 3
D ActionListener: welcher Button wurde geklickt Java Basics - Anfänger-Themen 7
M Diagramme erzeugen ,aber mit welcher Klasse Java Basics - Anfänger-Themen 7
T Welcher Typ für wiederkehrendes Datum (wie Heiligabend) Java Basics - Anfänger-Themen 4
G JRadioButton Objekte zugehörig zu welcher buttongroup Java Basics - Anfänger-Themen 3
S 2 ActionListener 1 JButton, welcher reagiert zuerst Java Basics - Anfänger-Themen 2
G Welcher Layout-Manager? *confused* Java Basics - Anfänger-Themen 2
B 2 String vergleichen danach welcher ist größer ? Java Basics - Anfänger-Themen 4
S Fehler , welcher ? Java Basics - Anfänger-Themen 4
M welcher Layoutmannager ist für Webseiten Outfit geeignet Java Basics - Anfänger-Themen 8
F Objekt vom Typ Interfaces: Prüfung von welcher Unterklasse? Java Basics - Anfänger-Themen 7
G Auf eine Klasse zugreifen,von welcher man nur den Pfad weiss Java Basics - Anfänger-Themen 4
S Wie unterscheiden welcher Button geklickt wurde? Java Basics - Anfänger-Themen 2
S welcher Konstructor zu erst bei Vererbung Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
M Nullpointer beim befüllen meiner Liste im Object Java Basics - Anfänger-Themen 3
J neues Object (JLabel) vorab zum Layout hinzufügen , Location setzen, etc? Java Basics - Anfänger-Themen 2
I JSON - cannot deserialize from Object value Java Basics - Anfänger-Themen 16
"java.util.HashMap.get(Object)" is null Java Basics - Anfänger-Themen 10
H What is the Life Cycle of an Object Created Within/Outside of a Servlet? Will that item be destroyed after the session ends? Java Basics - Anfänger-Themen 1
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
thobren Object[][] Java Basics - Anfänger-Themen 8
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
B JaxB - Property vom Typ Object und LocalDateTime speichern? Java Basics - Anfänger-Themen 0
S Arraylist<Object> mit verschiedenen Objects ausgeben Java Basics - Anfänger-Themen 3
N extends und super vs new object Java Basics - Anfänger-Themen 4
I JaxB und Klasse "Object" ? Java Basics - Anfänger-Themen 7
D Klassen undefined for the type 'object' Java Basics - Anfänger-Themen 2
B JaxB - speichern vom Typ "Object" Java Basics - Anfänger-Themen 8
P Variablen HttpResponse.getBody() wird automatisch org.json Object und kann nicht zu json.simple Object gecastet werden? Java Basics - Anfänger-Themen 7
M this.object in einer parameterlosen Methode verwenden Java Basics - Anfänger-Themen 3
M Java Klasse Object Java Basics - Anfänger-Themen 5
G Java Object value und entity? Java Basics - Anfänger-Themen 2
S Generics-Problem: Class, Class<?>, Class<Object> Java Basics - Anfänger-Themen 4
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Zugreifen auf Object[] Java Basics - Anfänger-Themen 4
B if(object== null) abkürzen? Java Basics - Anfänger-Themen 6
A Object to Map Java Basics - Anfänger-Themen 2
D Object in ArrayList ausgeben Java Basics - Anfänger-Themen 24
L Input/Output Datei Object aus resources Java Basics - Anfänger-Themen 1
T HashSet in List-Object Java Basics - Anfänger-Themen 5
H Datentypen for(typ a : b) nur typ Object möglich ? Java Basics - Anfänger-Themen 2
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
T Object zu Char zu String Java Basics - Anfänger-Themen 6
Yamie ArrayList<Object> als Liste von Strings ausgeben? Java Basics - Anfänger-Themen 15
F Methoden Object.clone() Java Basics - Anfänger-Themen 1
A Probleme beim Methodenaufruf von Object[] ! Java Basics - Anfänger-Themen 12
J Methoden Doppelt verkettete Liste remove(Object) Java Basics - Anfänger-Themen 8
S Methoden equals(object o) / toString Java Basics - Anfänger-Themen 15
A JavaScript Object Notation einbinden mittels Maven Java Basics - Anfänger-Themen 7
F Unique Object Java Basics - Anfänger-Themen 3
GreyFox Object dynamisch mit werten versehen. Java Basics - Anfänger-Themen 4
R The method printf(String, Object[]) in the type printStrem in not applicable for the arguments ... Java Basics - Anfänger-Themen 3
Z Object Kreis am Frame abprallen lassen! Java Basics - Anfänger-Themen 12
O Object Java Basics - Anfänger-Themen 4
O nullpointerExce. Gui Object weitergabe Java Basics - Anfänger-Themen 12
P Variablen generic type variablen in object array Java Basics - Anfänger-Themen 1
K Selbst renderndes Object auf null setzen Java Basics - Anfänger-Themen 1
K Methoden Probleme mit LinkedList.remove(object) Java Basics - Anfänger-Themen 1
J Object bestimmter Klasse Java Basics - Anfänger-Themen 3
F Object mit zwei Entities Java Basics - Anfänger-Themen 3
B Map, basic types & Object Java Basics - Anfänger-Themen 5
P Auf Object in Array Methode anwanden Java Basics - Anfänger-Themen 2
S Object Array Length via Konstruktor Java Basics - Anfänger-Themen 5
B Date Object mit Millisekunden Ausgabe Java Basics - Anfänger-Themen 8
V Object in double? Java Basics - Anfänger-Themen 3
B Object in Array nach Prüfung löschen Java Basics - Anfänger-Themen 13
N Object mit String ansprechen Java Basics - Anfänger-Themen 7
A Applet mit Object-Tags einbinden. Java Basics - Anfänger-Themen 3
A If object != null funktioniert nicht Java Basics - Anfänger-Themen 2
B func(Object ....args) korrekt weitergeben Java Basics - Anfänger-Themen 4
M Object people[][] Daten hinzufügen Java Basics - Anfänger-Themen 3
T Input/Output Object Streams Java Basics - Anfänger-Themen 6
T Object[][] to String[][] Java Basics - Anfänger-Themen 8
T Object in Array Java Basics - Anfänger-Themen 3
T HashMap<String,Object> Werte auslesen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben