Allons-y, puisque "Initialisation de bloc" ne rapporte rien via les outils "Recherche dans les forums" et "Recherche dans les projets".

Dans une classe en Java, il est possible de déclarer un bloc (entre '{ }'), seulement précédé du mot réservé 'static'. Un tel bloc peut contenir du code qui n'est exécuté une seule fois, en cas de bloc 'static', lorsque la classe est chargée, c à d avant que l'objet de cette classe soit créé.
Ce fonctionnement me semble très proche de celui d'un constructeur de la classe, hormis que celui-ci n'est exécuté que lorsque la classe est instanciée.
Un esprit bien éclairé pourrait-il me dire quand une initialisation de bloc (statique ou dynamique) et/ou un constructeur s'avèrent le plus opportun à mettre oeuvre ? Avec des cas pratiques en illustrant la pertinence ...

A quels moments distincts, en fait, se passe le 'class loading' si ce n'est juste avant l'instanciation de la classe ?

J'ai posé la question ce matin sur Sun Forums > Java Essentials > Java Programming > Initialization block vs constructor
Mais les réponses obtenues "dépassent de trop ma modeste casquette".

Grand merci d'avance.