O ciclo de vida de um objeto Java
Como você trabalha com objetos em Java, compreender como objetos nascem, vivem suas vidas, e morrer é importante. Este tópico é chamado o ciclo da vida de um objeto, e isso é algo como isto:
1. Antes de um objeto pode ser criado a partir de uma classe, a classe deve ser carregado. Para isso, o tempo de execução Java localiza a classe no disco (em um arquivo .class) e lê-lo na memória. Então Java procura por quaisquer inicializadores estáticos que inicializar campos estáticos - campos que não pertencem a qualquer instância específica da classe, mas sim pertencem a própria classe e são compartilhados por todos os objetos criados a partir da classe.
A classe é carregada pela primeira vez, você cria um objeto da classe ou a primeira vez que você acessar um campo estático ou método da classe. Por exemplo, quando você executa o método principal de uma classe, a classe é inicializada porque o principal método é estático.
2. Um objeto é criado a partir de uma classe quando você usa a nova palavra-chave. Para inicializar a classe, Java aloca memória para o objeto e define uma referência para o objeto de modo que o tempo de execução Java pode acompanhar isso. Então, Java chama o construtor da classe, que é como um método, mas é chamado apenas uma vez, quando o objeto é criado. O construtor é responsável por fazer qualquer processamento necessário para inicializar o objeto, como inicialização de variáveis, abrir arquivos ou bancos de dados, e assim por diante.
3. O objeto vive sua vida, proporcionando acesso a seus métodos públicos e campos para quem quer e precisa deles.
4. Quando é hora para o objeto a morrer, o objeto é removido da memória e Java deixa cair a referência interna para isso. Você não tem que destruir objetos si mesmo. Uma parte especial do tempo de execução Java chamado o coletor de lixo cuida de destruir todos os objetos quando eles não estão mais em uso.