Curiosidade: classe sendo removida da memoria

Eu posso decidir tomar uma atitude quando uma determinada classe é carregada na memoria. Para isso basta criar um bloco static que é executado quando a classe é carregada. Mas, apenas por curiosidade, dá pra fazer algo quando a classe vai ser removida da memoria?! Não estou falando de quando o gc remove instancias e faz-se algo via finalize. Estou falando da classe em si. Tipo pseudo codigo:

class Pseudo {
   static {
      System.out.println("Carregou...");
   }

   unloader {
      System.out.println("Tá removendo da memoria...");
   }
}

Até.

Hmm, a única forma que eu imagino voce fazendo isso é escrevendo no método finalize de um classloader, dado que classes são somente coletadas com os classloaders delas.

Há alguma garantia que o finalize() sempre vai ser executado?!? De modo que seja seguro encarregá-lo de salvar dados quando ocorrer algum erro, por exemplo…

Não, não existe nenhuma garantia que os finalizers são rodados.

Um finalizer deve ser usado somente em situações desesperadoras, pq eles possuem um custo mostruoso para a VM.