O que é um bloco estático?


Melhor resposta

bloco estático {}

  1. blocos estáticos são usados ​​para inicializar os dados estáticos na classe, ele cria recursos estáticos.
  2. blocos estáticos são executados apenas uma vez, assim que a classe é carregada na memória.
  3. blocos estáticos são executados antes do método main () pelo carregador JavaClass.
  4. Uma classe pode ter vários blocos estáticos, que serão executados na mesma sequência em que foram gravados no programa .
  5. estático {}, é executado toda vez, quando a classe carrega.
  6. Não podemos escrever blocos estáticos dentro de um método estático e um método não estático (blocos estáticos são escritos separadamente )
  7. Apenas variáveis ​​estáticas podem ser acessíveis dentro de um bloco estático.
  8. Podemos chamar um método estático dentro de um bloco estático.
  9. Não podemos criar nenhum método dentro de bloco estático.
  10. Variáveis ​​não estáticas e métodos não estáticos não podem ser acessíveis dentro de um bloco estático.
  11. Se você tentar acessar variáveis ​​ou métodos não estáticos dentro de um bloco estático, ocorrerá um erro de tempo de compilação,

Não é possível fazer uma referência estática ao método não estático wow () do tipo staticblock

Considere o exemplo abaixo de bloco estático.

  • Há um bloco estático {} dentro de uma classe.
  • Existem duas variáveis ​​estáticas “ss, j” declaradas, nas quais são acessadas dentro do método estático e no bloco estático
  • Um método estático disp () é escrito e imprime a variável estática dentro dele.
  • Este método é chamado dentro de um bloco estático {}
  • variáveis ​​estáticas e métodos estáticos podem ser acessível apenas dentro de um bloco estático

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) {

}

}

verifique a saída

o bloco estático é invocado com o valor8

runnin bloco estático antes do método principal

O valor dentro do método estático é 23

Resposta

Os blocos estáticos também são chamados de Blocos de inicialização estáticos , uma classe pode ter qualquer número de blocos estáticos e eles podem aparecer em qualquer lugar dentro da classe java.

Este bloco é executado quando a classe está lo aded na memória. O sistema de tempo de execução Java garante que os blocos de inicialização estáticos sejam chamados na ordem em que aparecem no código-fonte.

Exemplo:

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");

}

}

Resultado:

Static block - 1

Static block - 2

Static block - 3

Main Method

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *