Indirectly, both of these methods are calling the objects' toString() method.
I normally just call this method to get the object to a string, or alternatively you can directly "add" your object to a string, automatically calling the toString() method and concatenating the strings together. This makes the code easy to read and understand.
Technically, calling the toString() method is the most efficient and uses the least memory, but the performance of all the methods are virtually identical. Note that concatenating strings can become very slow for repeated concatenations of large strings because it does have to create a new character array and copy over both string's to get the new string.
If you have to build large strings, the recommended method would be to use the StringBuilder class.