-
public class MyClass { final int x = 2; }
x è
- finale che significa che non può mai essere impostato dopo l'inizializzazione.
- Inizializzato alla dichiarazione che significa che non può avere un valore diverso assegnato successivamente (anche nel costruttore).
- corretto (indipendentemente dall'istanza) perché il suo valore non può essere modificato nel costruttore (o in qualsiasi altro luogo realmente).
Secondo esempio
public class MyOtherClass { static final int x = 3; }
x è
- finale che significa che può non essere impostato dopo l'inizializzazione.
- Inizializzato alla dichiarazione che significa che non può avere un valore diverso assegnato in seguito.
- a campo statico e il valore rimarrà sempre lo stesso indipendentemente dall'istanza.
- costante perché è sia statico e finale.
Le mie domande sono
Quali sono le differenze tra i due? (escluso il tempo di creazione)
Mi manca qualcosa?
Questa è la mia prima domanda quindi, sentitevi liberi di commentare lo stile e se posso improvvisare e lui. – naaz
Se si inizializza una variabile finale al momento della dichiarazione, probabilmente dovrebbe essere statica ... – assylias
Una differenza potenziale è una primitiva 'static final' non utilizzata durante il runtime. Il compilatore avrebbe sostituito tutte le occorrenze di esso con il valore durante la compilazione rendendolo più ottimizzato. – Codebender