|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
[java] inizializzazione lazy
Da piu parti viene suggerita di dichiarare la variabile (della quale si vuole una inizializzazione lazy) come static final in maniera da sfruttare l' intrinseca proprietà delle variabili final di essere thread-safe ed evitare quindi i classici problemi derivanti dalla verifica dei riferimenti null di variabili non volati e/o sincronizzate. Quello che non mi torna è però il fatto che le variabili statiche vengono inizializzate al primo utilizzo della classe (new o accesso a metodi o variabili statiche) e non al loro primo reale utilizzo.
In realtà leggevo, in un post o articolo (che non riesco più a trovare) forse proprio su questo sito che le variabili (static o final o entrambe) vengono inizializzate al momento del loro reale utilizzo, ma specifiche alla mano non è evidentemente cosi. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Purtroppo non ho dati alla mano, però ricordo che questo tipo di inizializzazioni (statiche appunto) avviene al caricamento della classe, quindi quando avviene per la prima volta un riferimento ad essa.
Edit: ho trovato un riferimento: http://docs.oracle.com/javase/specs/...8.html#jls-8.7 Ultima modifica di wingman87 : 26-06-2012 alle 21:15. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:42.