A) Compilation error, toString() is not avialable for Byte. B) Prints "True". C) Prints "False".
I am not able to understand, why answer of this question is C. I have compiled the code and find that answer is C, whereas toString() methods is returning the same value.
You showed us a rather exotic version of this code:
Every string created by new or toString() is a separate object created at execution time, not a shared member of the String literal pool set up at compile time.