title: Should Java methods be static by default?
body: <p>Say you're writing method <code>foo()</code> in class A.  foo doesn't ever access any of A's state.  You know nothing else about what foo does, or how it behaves.  It could do anything.</p>
  
  <p>Should foo always be static, regardless of any other considerations?  Why not?</p>
  
  <p>It seems my classes are always accumulating many private helper methods, as I break tasks down and apply the only-write-it-once principle.  Most of these don't rely on the object's state, but would never be useful outside of the class's own methods.  Should they be static by default?  Is it wrong to end up with a large number of internal static methods?</p>