title: Java Utility Class vs. Service
body: <p>What's the difference in Java between a utility class (a class with static methods) and a Service class (a class with public methods that provides a "service").  For example, one can argue that a cryptographic object (providing methods to encrypt, decrypt, hash or get a salt value) is a Service provider, but many group this functionality into a Utility class with static methods, like CryptoUtil.encrypt(...).  I'm trying to figure out which way follows better "design".  Thoughts?</p>