If you look at the String.contentEquals code, you will see:
    public boolean contentEquals(CharSequence cs) {
        ....
        // Argument is a String
        if (cs.equals(this))
            return true;
        // Argument is a generic CharSequence
        char v1[] = value;
        int n = v1.length;
        if (n != cs.length()) {
            return false;
        }
        for (int i = 0; i < n; i++) {
            if (v1[i] != cs.charAt(i)) {
                return false;
            }
        }
That is, if we pass a String in, and we mismatch, we do the per-char test as the fallback, which is guaranteed to "false" again.
  |