Kada se statičke varijable inicijaliziraju u Javi?

1. Uvod

U ovom uputstvu istražit ćemo postupak inicijalizacije statičke varijable. Java virtualni stroj (JVM) slijedi ovaj postupak tijekom učitavanja klase.

2. Postupak inicijalizacije

Na visokoj razini, JVM izvodi sljedeće korake:

Prvo se učitava i povezuje klasa. Zatim, faza "inicijalizacije" ovog procesa obrađuje inicijalizaciju statičke varijable. Napokon, glavni naziva se metoda povezana s klasom.

U sljedećem ćemo odjeljku pogledati inicijalizaciju varijable klase.

3. Varijabla klase

U Javi se statičke varijable nazivaju i varijablama klase. Odnosno, pripadaju klasi, a ne određenoj instanci. Kao rezultat, inicijalizacija klase inicijalizirat će statičke varijable.

Suprotno tome, instanca klase će inicijalizirati varijable instance (nestatičke varijable). Sve instance klase dijele statičke varijable klase.

Uzmimo primjer klase StaticVariableDemo:

javna klasa StaticVariableDemo {javni statički int i; javni statički int j = 20; javni StaticVariableDemo () {}}

Prvo, JVM stvara Razred objekt za klasu StaticVariableDemo. Dalje, statički inicijalizatori polja dodijeljuju značajnu zadanu vrijednost statičkim poljima. U našem primjeru gore, varijabla klase ja se prvo inicijalizira s int zadana vrijednost nula.

Tekstualni redoslijed odnosi se na statička polja. Prvi, ja će se inicijalizirati, a zatim j bit će inicijalizirani. Nakon toga, klasa i njezini statički članovi bit će vidljivi ostalim klasama.

4. Promjenjiva u statičkom bloku

Uzmimo još jedan primjer:

javna klasa StaticVariableDemo {javni statički int z; statički {z = 30; } javni StaticVariableDemo () {}}

U tom će slučaju inicijalizacija varijable biti u slijedu. Na primjer, JVM u početku dodjeljuje varijablu z na zadanu vrijednost int vrijednost 0. Zatim, u statički blok, mijenja se u 30.

5. Promjenjiva u statičkoj ugnježđenoj klasi

Na kraju, uzmimo primjer ugniježđene klase unutar vanjske StaticVariableDemo razred:

javna klasa StaticVariableDemo {public StaticVariableDemo () {} statička klasa ugniježđena {javni statički niz nestedClassStaticVariable = "test"; }}

U ovom slučaju razred StaticVariableDemo učitava Ugniježđena razred. Inicijalizirat će statičku varijablu nestedClassStaticVariable.

6. Zaključak

U ovom smo kratkom članku ukratko objasnili inicijalizaciju statičke varijable. Za daljnje pojedinosti provjerite Specifikaciju jezika Java.

Kao i uvijek, isječci koda dostupni su na GitHubu.


$config[zx-auto] not found$config[zx-overlay] not found