"Olá, amigo! Ouvi dizer que Rishi explicou algo novo e empolgante para você?!"
"Isso mesmo, Kim."
"Meu tópico não será menos interessante. Quero falar sobre como as classes são carregadas na memória."
As classes em Java são arquivos no disco que contêm bytecode, que é um código Java compilado.
"Sim eu lembro."
A máquina Java não os carrega se não for necessário. Assim que houver uma chamada para uma classe em algum lugar do código, a máquina Java verifica se ela foi carregada. E se não, ele carrega e inicializa.
Inicializar uma classe envolve atribuir valores a todas as suas variáveis estáticas e chamar todos os blocos de inicialização estáticos.
"Isso parece semelhante a chamar um construtor em um objeto. Mas o que é um bloco de inicialização estático?"
"Se você precisar executar um código complexo (por exemplo, carregar algo de um arquivo) para inicializar objetos, podemos fazê-lo em um construtor. No entanto, variáveis estáticas não têm essa oportunidade. Mas como a necessidade ainda permanece, você pode adicione um ou mais blocos de inicialização estática às classes. Eles são basicamente equivalentes a construtores estáticos."
Isto é o que parece:
Código | O que realmente acontece |
---|---|
|
|
É muito parecido com o que acontece quando um construtor é chamado. Eu até o escrevi como um construtor estático (inexistente).
"Sim entendo."
"Muito bom."
GO TO FULL VERSION