Inicializadores en Java
Java todavía dispone de una tercera línea de actuación para evitar que haya variables sin inicializar correctamente. Son los inicializadores, que pueden ser static (para la clase) o de objeto.
Inicializadores static
Un inicializador static es un algo parecido a un método (un bloque {…} de código, sin nombre y sin argumentos, precedido por la palabra static) que se llama automáticamente al crear la clase (al utilizarla por primera vez). También se diferencia del constructor en que no es llamado para cada objeto, sino una sola vez para toda la clase.
Los tipos primitivos pueden inicializarse directamente con asignaciones en la clase o en el constructor, pero para inicializar objetos o elementos más complicados es bueno utilizar un inicializador (un bloque de código {…}), ya que permite gestionar excepciones con try…catch.
Los inicializadores static se crean dentro de la clase, como métodos sin nombre, sin argumentos y sin valor de retorno, con tan sólo la palabra static y el código entre llaves {…}. En una clase pueden definirse varios inicializadores static, que se llamarán en el orden en que han sido definidos.
Los inicializadores static se pueden utilizar para dar valor a las variables static. Además se suelen utilizar para llamar a métodos nativos, esto es, a métodos escritos por ejemplo en C/C++ (llamando a los métodos System.load() o System.loadLibrary(), que leen las librerías nativas). Por ejemplo:
static{
System.loadLibrary(«MyNativeLibrary»);
}
Fuente: Aprenda Java como si estuviera en primero de la Universidad de Navarra