"Hej, Amigo! Jeg hørte Rishi forklare dig noget nyt og spændende?!"
"Det er rigtigt, Kim."
"Mit emne bliver ikke mindre interessant. Jeg vil gerne fortælle dig om, hvordan klasser indlæses i hukommelsen."
Klasser i Java er filer på disken, der indeholder bytecode, som er kompileret Java-kode.
"Ja, jeg husker."
Java-maskinen indlæser dem ikke, hvis det ikke er nødvendigt. Så snart der er et opkald til en klasse et sted i koden, tjekker Java-maskinen om den er indlæst. Og hvis ikke, så indlæser den og initialiserer den.
Initialisering af en klasse involverer at tildele værdier til alle dens statiske variable og kalde alle statiske initialiseringsblokke.
"Det ligner at kalde en konstruktør på et objekt. Men hvad er en statisk initialiseringsblok?"
"Hvis du skal udføre kompleks kode (f.eks. indlæse noget fra en fil) for at initialisere objekter, kan vi gøre det i en konstruktør. Statiske variable har dog ikke denne mulighed. Men da behovet stadig er til stede, kan du tilføje en eller flere statiske initialiseringsblokke til klasser. De svarer grundlæggende til statiske konstruktører."
Sådan ser det ud:
Kode | Hvad sker der virkelig |
---|---|
|
|
Det minder meget om, hvad der sker, når en konstruktør bliver kaldt. Jeg har endda skrevet det som en (ikke-eksisterende) statisk konstruktør.
"Ja, jeg forstår det."
"Meget godt."