Когда мы объявляем строковый литерал какСоздание объекта в момент провозглашения строки в Java
String str = "abc";
только один объект создается в Струнный пуле. Но когда мы создаем его как
String str = new String("abc");
2 объектов созданы один в памяти кучи другой в Струнный бассейне. Какова цель создания записи в пуле строк, когда у вас уже есть объект, помещенный в память кучи?
Создание объекта 'String' явно из строкового литерала, как вы делаете во втором примере, никогда не бывает полезно. Вам никогда не нужно писать такой код в реальном Java-приложении. – Jesper
Ум, как вы думаете, создается ли первым? Параметр или объект конструктора, созданный с помощью вызова конструктора? – fabian