Bom dia a todos.
Existe um conceito que precisa ser mais debatido quanto a instancição de objetos em memória, e este conceito seria esclarecido com a pergunta a seguir:
O que é armazenado dentro da variável de um objeto a qual chamamos de instância :?:
Muitos desenvolvedores, inclusive eu logo no início do meu aprendizado, acreditavam e ainda acreditam que é o Objeto em si que é armazenado em memória, quando na verdade é simplesmente o enderêço de memória de onde o Objeto foi alocado, e não o Objeto.
Por esta razão chamamos a variável de referência da instância, onde a sintaxe “new” primeiramente aloca o Objeto em memória e faz um mapeamento da mesma e armazena o enderêço deste mapeamento na variável.
Na Linguagem Pascal Object do Delphi, existia um problema constante de se destruir (limpar) da memória um Objeto sem limpar a sua referência (variável) em memória, problemas este que foram sanados mais tarde, com o método do Pascal “FreeAndNil”.
Por esta razão, é que desenvolveram o Garbage Colector, que faz o compilador java verificar se um objeto em memória esteja lactente (sem ser acessado) por muito tempo, e o destroi da memória, verificando os objetos orfãos de referência, limpando-as logo a seguir. Este tema está mais sucinto neste link: http://www.guj.com.br/article.show.logic?id=28
Com relação as [color=darkblue]“Classes Anônimas”[/color], ou seja, voce alocar o Objeto desta forma:
Estas não possuem referência, e por esta razão fica inascecível ao desenvolvedor, o que ocorre neste momento e que a sintaxe “new” cria uma alocação dinâmica fazendo com que a classe seja uma subclasse da classe que o invocou, exemplo de quando compilado fica [color=darkblue]ClassePrincipal$1.class[/color], assim o JVM pode invocar seu construtor e criar o Objeto, além do qual também executar os seus listeners de eventos que porventura esteja configurados em componentes do Objeto instanciado, e é por isso que tais classes são consideradas Anônimas.
Aliás chamá-las de classes anônimas seria um tanto quanto incoerente, só porque ficou anônima na compilação, pois afinal, a me ver, a classe foi identificada, como no caso acima, MinhaClasse, o que ficou anônimo mesmo foi a instância ou variável pelo qual não se tem a referência de memória específica para ela, ficando este referência agregada a classe que a invocou.