I have read the following discussions:
Should private helper methods be static if they can be static , and
Should all methods be static if their class has no mem
I often use static factory methods instead of or in conjunction with public constructors.
I do this, when i need a constructor that does something you would not expect a constructor to do. I.e. load settings from a file or database.
This approach also provides the possibility of naming the "constructors", based on what they do. This is especially useful, when the parameters themselves are not enough to figure out what happens in a constructor.
Sun uses this approach in
Class.forName("java.lang.Integer");
and
Boolean.valueOf("true");