[deleted]
You have still misunderstood the thread. You say
except in one the string is left on the heap for "potential" future use and in another it isn't.!
That is not correct. The String you write as a literal is put onto the heap at class-loading time and stays on the head until the class is unloaded. It is reused if an identical String literal is written anywhere, even in a different class. So in the first instance you have one String object and in the second two String objects, which are identical to each other.
You are correct to say there is no benefit; since String is an immutable class, there is hardly ever any use for two identical Strings.
Somebody did once say you can use several identical Strings as lock objects, which is one potential use. Remember String is a library class, and you tend to put as many methods/constructors in library classes as possible, just in case somebody wants to use them. Once you have published a String class with a copy constructor, you can never remove that copy constructor in case somebody has already used it. If you remove the copy constructor you will break all their old code.