}
synchronized {
}```
Kann mir erklären wofür das da ist? Bei synchronized kann ichs mir ja noch halbwegs erklären, das alles was da drin steht, nur von einem Thread gleichzeitig gemacht werden kann, aber bei static?
Das ist ein sogenannter “static initalization block”.
Dieser wird einmal beim Initialisieren der Klasse ausgeführt (nicht einer Instanz).
http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html
Gruß
static wird einmal ausgeführt wenn die Klasse das Erste mal vom Classloader geladen (?) wird
Es heisst eig auch
}```
Hierbei wird eben nur dieses eine Objekt synchronisiert. Das hat den Vorteil dass somit auch noch andere Methoden der Klasse aufgerufen werden können die unabhängig von diesem Objekt sind. Wenn man die komplette Methode synchronisiert dann kann keine andere Methode mehr aifgerufen wersen