You can call a static method whenever you want, but a static initialization block is called only when the class is loaded. Therefore, static methods are somewhat more flexible. If a class has static data which may need to be re-initialized at some point, then it makes more sense to put that initialization code in a static method (perhaps calling it from a static initialization block!) so that the method can be called again at some other time.
You would have got your answer sooner if you had explained your question more.