Podemos executar qualquer código,mesmo antes do metendo main.?
Podemos executar qualquer código,mesmo antes do metendo main.?
7 Respostas
6 likes
O método main é o ponto de partida em uma aplicação java desktop. Algo que precise ser executado antes seria algum código dentro de um bloco estático:
public class Main {
static {
System.out.println("Eu serei executado antes do main");
}
public static void main(String[] args) {
System.out.println("Estou executando depois do bloco estático.");
}
}
E a saída será:
Eu serei executado antes do main
Estou executando depois do bloco estático.
A gente aprende, aprende, aprende e morre burro.
Não fazia ideia que era possível usar esse recurso.
Neste caso específico, justifica-se entendendo como o class loader (responsável por coletar as classes e dispô-las na memória da jvm). Ao carregar uma classe, todos os seus elementos estáticos são carregados (enums estão nessa leva).
Existe uma sequência de carregamento das classes? Por exemplo, se em todas as classes eu colocar esse bloco, existe ordem para o carregamento delas?
muito obrigado [lucas]
1 like
Sim, a ordem em que são referenciadas a partir da sua classe principal.
Criado 13 de fevereiro de 2020
Ultima resposta 25 de fev. de 2020
Respostas 7
Participantes 5
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo Desbravando SOLID: Praticas avancadas para codigos de... Por Alexandre Aquiles — Casa do Codigo