Объявляются при помощи ключевого слова static.
Переменные и методы, объявленные как static, являются разделяемыми свойствами всех классов, а не отдельных экземпляров объекта. То есть одна копия переменной разделяется всеми экземплярами объектов класса, поэтому к ним можно обращаться без ссылки на конкретный объект и до или без создания каких-либо объектов. При этом нестатические методы могут работать как с обычными, так и со статическими переменными.
Методы, объявленные как static, могут работать только с переменными и методами, объявленными как static. Такие методы можно вызвать даже если объект не создан. В статических методах нельзя ссылаться на this и на super() (конструктор базового класса).
Метод main() объявляется как static, потому что должен вызваться прежде, чем будут созданы какие-либо объекты.
Статистические переменные создаются один раз, как глобальные, то есть нет дублирования, как при нестатических переменных. Статические переменные можно вызывать, не создав объекта класса.
Статические переменные объявляют, когда нужна общая переменная на все экземпляры класса. Это может быть, например, счетчик количества экземпляров класса.