They serve as a sort of data pool shared by all instances of a class. They can be accessed even when on instances of the class exist.
The same applies for static methods.
They can be useful, for example, to know how many instances of a class there are currently in memory.