Najlepsza odpowiedź
blok statyczny {}
- bloki statyczne służą do inicjalizacji statycznych danych w klasie, tworzy statyczne zasoby.
- bloki statyczne są wykonywane tylko raz, gdy tylko klasa zostanie załadowana do pamięci.
- bloki statyczne są wykonywane przed metodą main () przez program ładujący JavaClass.
- Klasa może mieć wiele bloków statycznych, które będą wykonywane w tej samej kolejności, w jakiej zostały zapisane w programie .
- statyczny {}, jest wykonywany za każdym razem, gdy klasa się ładuje.
- Nie możemy pisać bloków statycznych wewnątrz metody statycznej i metody niestatycznej (bloki statyczne są zapisywane osobno )
- Tylko zmienne statyczne mogą być dostępne wewnątrz bloku statycznego.
- Możemy wywołać metodę statyczną wewnątrz bloku statycznego.
- Nie możemy tworzyć żadnych metod wewnątrz blok statyczny.
- Zmienne niestatyczne i metody niestatyczne nie mogą być dostępne w pliku blok statyczny.
- Próba uzyskania dostępu do zmiennych lub metod niestatycznych wewnątrz bloku statycznego powoduje błąd czasu kompilacji,
Nie można utworzyć statycznego odwołania do niestatycznej metody wow () z typu staticblock
Rozważ poniższy przykład statycznego bloku.
- W klasie znajduje się jeden blok statyczny {}.
- Istnieją dwie zadeklarowane zmienne statyczne „ss, j”, w których można uzyskać do nich dostęp wewnątrz metody statycznej oraz w bloku statycznym.
- Metoda statyczna disp () jest zapisywana i drukuje zmienną statyczną wewnątrz niej.
- Ta metoda jest wywoływana wewnątrz bloku statycznego {}
- zmienne statyczne i metody statyczne mogą być dostępne tylko wewnątrz bloku statycznego
public class staticblock {
static int ss=23; // initialize the static variable with value;
public static void disp() {
System.out.println("runnin static block before main method");
System.out.println("Value inside static method is "+ss);
}
static int j;
static // static block
{
j=8;
System.out.println("static block is invoked with the value"+j); // access the static variable inside static block
disp(); // calling the static method inside static block
}
public static void main(String[] args) {
}
}
sprawdź wyjście
blok statyczny jest wywoływany z wartością8
uruchamiany w bloku statycznym przed metodą główną
Wartość wewnątrz metody statycznej to 23
Odpowiedź
Bloki statyczne są również nazywane Statyczne bloki inicjalizacyjne , klasa może mieć dowolną liczbę bloków statycznych i mogą pojawić się w dowolnym miejscu w klasie java.
Ten blok jest wykonywany, gdy klasa jest lo umieszczone w pamięci. Środowisko wykonawcze Java gwarantuje, że statyczne bloki inicjalizacyjne są wywoływane w kolejności, w jakiej występują w kodzie źródłowym.
Przykład:
public class Solution{
static {
System.out.println("Static block - 1");
}
static {
System.out.println("Static block - 2");
}
public static void main(String[] args){
System.out.println("Main Method");
}
static {
System.out.println("Static block - 3");
}
}
Wynik:
Static block - 1
Static block - 2
Static block - 3
Main Method