new String(String) to duplicate a string is inefficient and almost always unnecessary.
Stringobjects can share backing arrays with other
Stringobjects. In those versions, it is possible to leak memory by creating a (small) substring of a (large) string and retaining it. However, from Java 7 onwards,
Stringbacking arrays are not shared.
In the absence of any tangible benefit, calling
new String(String) is simply wasteful:
hashCode()can be slower if String objects are copied.