String.subSequence() has the following javadoc:
String.subSequence()
Returns a new character sequence that is a subsequence of this sequence.
Basically it is just what is returned. One a String and the other a CharSequence (which you can cast as a string). You would use the subSequence when you need a CharSequence type of variable.