static означает, что переменная или метод, отмеченные как таковые, доступны на уровне класса. Другими словами, вам не нужно создавать экземпляр класса для доступа к нему.
public class Foo {
public static void doStuff(){
// does stuff
}
}
Итак, вместо создания экземпляра Foo и последующего вызова doStuff
, например:
Foo f = new Foo();
f.doStuff();
Вы просто вызываете метод непосредственно для класса, например:
Foo.doStuff();
Говоря простым языком, класс - это форма, а объект - копия, сделанная с помощью этой формы. Статические данные принадлежат пресс-форме, и к ним можно получить доступ напрямую, без создания копий, отсюда приведенный выше пример