static
Dichiara una variabli o un metodo "di classe". Il modificatore static, può essere utile nei casi in cui bisogna avere una variabile di una classe condivisa e visibile (utilizzabile) da tutte le proprie istanze. Quando si utilizza una variabile all'interno di una classe ogni istanza della classe (oggetto) riceve una copia della variabile, con static, invece, esiste una sola copia "globale" a tutte le istanze di una determinata classe. I metodi di classe sono analoghi alle variabili di classe ed è possibile accedervi usando direttamente la sintassi: NomeClasse.NomeMetodoStatico senza creare un'istanza della classe. In pratica, le variabile (o i metodi) definiti static sono un l'equivalente delle variabili globali (o delle funzioni) esistenti negli altri linguaggi di programmazione. I metodi static sono final per default.

static viene utilizzato, anche, per caricare una libreria dinamica (DLL) la prima volta che viene istanziata una classe.

Quasta parola chiave è anche utilizzata in fase di inclusione per importare elementi statici da un altro oggetto, tale operazione permette di accedere a membri e metodi statici senza dichiararne lo scope.

Vedere anche: import

Esempio: 
public class Istanza { 
    private static int i = 0; 
    private static void incrementa() { 
        i++; 
    } 
    ... 
    public Istanza() { 
        Istanza.incrementa(); 
    } 
    ... 
} 
Esempio di utilizzo per caricare una DLL: 
public class MiaClasse { 
    ... 
    static {  
       System.loadLibrary("miaDLL"); 
    } 
}
Esempio di inclusione statica:
import static java.util.Arrays.*;