Use the string.equals(Object other) function to compare strings, not the == operator. The function checks the actual contents of the string, the == operator checks whether the references to the objects are equal. Note that string constants are usually "interned" such that two constants with the same value can actually be compared with ==, but it's better not to rely on that.
One thing that is not covered here is that it depends if we compare string to c string, c string to string or string to string. A major difference is that for comparing two strings size equality is checked before doing the compare and that makes the == operator faster than a compare.
Functionally, it looks like it allows you to nest a variable inside a string without doing concatenation using the + operator. I'm looking for documentation on this feature.