1. Comparable is about natural ordering where one object compare itself with another., Comparator is about any order.
2. Most of sorted set and map use Comparable if no Comparator is defined.
3. Recommended that value Object should implement Comparable, JDK does that see
String, Integer all implements Comparable.
4. While overriding compareTo() method for Comparable make sure its consistent with equals() method. means if two object are equal by equals method than compareTo() must return zero. failing this your object may violate general contract of SortedSet and SortedMap which uses compareTo() for duplicate checking.
See if this helps:
http://javarevisited.blogspot.com/2011/06/comparator-and-comparable-in-java.html