Una costante è a variabile il cui valore non può cambiare dopo che è stato assegnato. Giava non ha il supporto integrato per le costanti, ma i modificatori di variabili statico e finale può essere usato per crearne uno efficacemente.
Le costanti possono rendere il tuo programma più facile da leggere e comprendere da altri. Inoltre, una costante viene memorizzata nella cache dalla JVM e dall'applicazione, quindi l'utilizzo di una costante può migliorare le prestazioni.
Modificatore statico
Ciò consente di utilizzare una variabile senza prima creare un'istanza di classe; un membro di classe statico è associato alla classe stessa, piuttosto che a un oggetto. Tutte le istanze di classe condividono la stessa copia della variabile.
Ciò significa che un'altra applicazione o main () può facilmente usarlo.
Ad esempio, la classe myClass contiene una variabile statica days_in_week:
classe pubblica myClass {
static int days_in_week = 7;
}
Perché questa variabile è statico, può essere utilizzato altrove senza creare esplicitamente un oggetto myClass:
public class myOtherClass {
static void main (String [] args) {
System.out.println (myClass.days_in_week);
}
}
Modificatore finale
Il modificatore finale indica che il valore della variabile non può cambiare. Una volta assegnato, il valore non può essere riassegnato.
Tipi di dati primitivi (cioè int, short, long, byte, char, float, double, boolean) possono essere resi immutabili / immutabili usando il modificatore finale.
Insieme, questi modificatori creano una variabile costante.
statico finale int DAYS_IN_WEEK = 7;
Nota che abbiamo dichiarato DAYS_IN_WEEK in maiuscolo una volta aggiunto il finale modificatore. È una pratica di lunga data tra i programmatori Java definire le variabili costanti in tutte le maiuscole, nonché separare le parole con caratteri di sottolineatura.
Java non richiede questa formattazione ma rende più semplice per chiunque legga immediatamente il codice identificare una costante.
Potenziali problemi con variabili costanti
Il modo in cui la parola chiave finale funziona in Java è che il puntatore della variabile al valore non può cambiare. Ripetiamolo: è il puntatore che non può cambiare la posizione a cui punta.
Non vi è alcuna garanzia che l'oggetto a cui si fa riferimento rimarrà lo stesso, solo che la variabile conterrà sempre un riferimento allo stesso oggetto. Se l'oggetto a cui si fa riferimento è mutabile (ovvero ha campi che possono essere modificati), la variabile costante può contenere un valore diverso da quello originariamente assegnato.