"Hei, Amigo! Jeg hørte Rishi forklarte deg noe nytt og spennende?!"
"Det stemmer, Kim."
"Emnet mitt blir ikke mindre interessant. Jeg vil fortelle deg om hvordan klasser lastes inn i minnet."
Klasser i Java er filer på disken som inneholder bytecode, som er kompilert Java-kode.
"Ja jeg husker."
Java-maskinen laster dem ikke hvis den ikke trenger det. Så snart det er et kall til en klasse et sted i koden, sjekker Java-maskinen om den er lastet. Og hvis ikke, så laster den og initialiserer den.
Initialisering av en klasse innebærer å tilordne verdier til alle dens statiske variabler og kalle alle statiske initialiseringsblokker.
"Det ligner på å kalle en konstruktør på et objekt. Men hva er en statisk initialiseringsblokk?"
"Hvis du trenger å utføre kompleks kode (for eksempel laste inn noe fra en fil) for å initialisere objekter, kan vi gjøre det i en konstruktør. Statiske variabler har imidlertid ikke denne muligheten. Men siden behovet fortsatt eksisterer, kan du legg til en eller flere statiske initialiseringsblokker til klasser. De tilsvarer i utgangspunktet statiske konstruktører."
Slik ser det ut:
Kode | Hva skjer egentlig |
---|---|
|
|
Det er mye som det som skjer når en konstruktør blir tilkalt. Jeg har til og med skrevet det som en (ikke-eksisterende) statisk konstruktør.
"Ja jeg forstår."
"Veldig bra."
GO TO FULL VERSION