Java создает объект String для каждого строкового литерала, который вы используете в своем коде. Каждый раз, когда используется ""
, он аналогичен вызову new String()
.
Строки - это сложные данные, которые просто «действуют» как примитивные данные. Строковые литералы на самом деле являются объектами, хотя мы притворяемся, что они являются примитивными литералами, такими как 6, 6.0, 'c',
и т. Д. Таким образом, строковый "литерал" "text"
возвращает новый объект String со значением char[] value = {'t','e','x','t}
. Поэтому звоню
new String("text");
на самом деле сродни звонку
new String(new String(new char[]{'t','e','x','t'}));
Надеюсь, отсюда вы можете понять, почему ваш учебник считает это излишним.
Для справки, вот реализация String: http://www.docjar.com/html/api/java/lang/String.java.html
Это забавное чтиво, которое может вдохновить на понимание. Для новичков также полезно читать и пытаться понять, так как код демонстрирует очень профессиональный и соответствующий стандартам код.
Еще один хороший справочник - руководство по Java для строк:
http://docs.oracle.com/javase/tutorial/java/data/strings.html