В гугле пишут, что эти методы эквивалентны, кроме того, что при значении null ValueOf создает исключение NullPointerException, а toString - нет.
Но если запустить
System.out.ptintln(Object.toString(obj) == String.ValueOf(obj))
В консоль java выведет "false".
Объясните, пожалуйста, почему так, в идеале объяснение с опорой на документацию. Самостоятельно не понимаю(
Также интересно, корректно ли говорить, что при написании String str = Object.toString(obj) мы ссылку на структуру объекта obj кладем в переменную String?