I am not sure about the technical validity of that statement -> either the compiler inserting the toString(); or the JVM interpreting the statement as an implicit call to toString(). However the answer to your other question lies here
Conversion char : 's', 'S'
Description : If the argument arg is null, then the result is "null". If arg implements Formattable, then arg.formatTo is invoked. Otherwise, the result is obtained by invoking arg.toString().
new Long("123") isn't null nor implements Formattable, so during conversion it's toString() method is invoked.
And toString() invocation returns "123".