Konstanta je a varijabla čija se vrijednost ne može promijeniti nakon što je dodijeljena. Java nema ugrađenu podršku za konstante, ali promjenjive modifikatore statički i konačni može se koristiti za njegovo učinkovito stvaranje.
Konstante mogu vaš program lakše čitati i razumjeti drugi. Osim toga, konstanta predmemorira JVM kao i vašu aplikaciju, tako da upotreba konstante može poboljšati performanse.
Statički modifikator
Ovo omogućuje upotrebu varijable bez prethodnog stvaranja instancije klasa; član statičke klase povezan je s samom klasom, a ne objektom. Sve instance klase imaju istu kopiju varijable.
To znači da ga može koristiti drugi program ili glavni ().
Na primjer, klasa myClass sadrži statičku varijablu days_in_week:
javna klasa myClass {
statički int days_in_week = 7;
}
Jer je ta varijabla statički, može se upotrebljavati na drugom mjestu bez izričitog stvaranja myClass objekta:
javna klasa myOtherClass {
statički nevaljani glavni (String [] args) {
System.out.println (myClass.days_in_week);
}
}
Konačni modifikator
Konačni modifikator znači da se vrijednost varijable ne može promijeniti. Kad se vrijednost dodijeli, ne može se dodijeliti ponovo.
Primitivni tipovi podataka (tj. int, kratka, duga, bajt, char, pluta, dvostruka, booleova) može se učiniti nepromjenjivim / nepromjenjivim koristeći krajnji modifikator.
Ti modifikatori zajedno stvaraju konstantnu varijablu.
statički konačni int DAYS_IN_WEEK = 7;
Imajte na umu da smo deklarirali DAYS_IN_WEEK u svim velikim slovima nakon što smo dodali konačni modifikator. Dugogodišnja je praksa među Java programerima definirati konstantne varijable u svim velikim slovima, kao i odvajati riječi s podvlakama.
Java ne zahtijeva ovo formatiranje, ali on svima olakšava čitanje koda odmah prepoznati konstantu.
Potencijalni problemi s konstantnim varijablama
Način na koji konačna ključna riječ radi u Javi jest da se pokazivač varijable na vrijednost ne može promijeniti. Ponovimo to: pokazivač ne može promijeniti lokaciju na koju je usmjeren.
Nema garancije da će objekt na koji se poziva ostati isti, samo da će varijabla uvijek imati referencu na isti objekt. Ako je referentni objekt moguće mijenjati (tj. Ima polja koja se mogu mijenjati), tada konstantna varijabla može sadržavati vrijednost različitu od prvobitno dodijeljene.