Возможный дубликат:
Какова цель выражения "new String (...)" в Java?
Если копии объектов неизменяемых объектов будут равны оригиналам, то почему класс String
в Java имеет конструктор копирования? Является ли это ошибкой или есть причина этой реализации?
В документах Java указано, что:
/**
* Initializes a newly created {@code String} object so that it represents
* the same sequence of characters as the argument; in other words, the
* newly created string is a copy of the argument string. Unless an
* explicit copy of {@code original} is needed, use of this constructor is
* unnecessary since Strings are immutable.
*
* @param original
* A {@code String}
*/
public String(String original) {
....
....}