Что выведет код Junior String и пул строк обновлено

Что выведет: методы String не меняют строку

Вопрос

Что выведет программа (Java 21)? Каждый вывод println с новой строки.

public class Main {
    public static void main(String[] args) {
        String s = " Java ";
        s.trim();
        s.toUpperCase();
        System.out.println("[" + s + "]");
        s = s.trim().toLowerCase();
        System.out.println("[" + s + "]");
        StringBuilder sb = new StringBuilder("ab");
        sb.reverse();
        System.out.println(sb);
    }
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: [ Java ], [java], ba. trim() и toUpperCase() возвращают новые строки, а результат выброшен: s не изменилась.

Что выведет

[ Java ]
[java]
ba

Разбор

trim() и toUpperCase() возвращают новые строки, а результат выброшен: s не изменилась. После присваивания s указывает на новую строку java. StringBuilder изменяемый, reverse() меняет его на месте.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме