Что выведет код Junior Основы: типы, обёртки, static спрашивают часто обновлено
Что выведет: изменение параметров
Вопрос
Что выведет программа (Java 21)? Каждый вывод println с новой строки.
public class Main {
static void change(StringBuilder sb, int n, String s) {
sb.append("!");
sb = new StringBuilder("new");
n++;
s += "?";
}
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("hi");
int n = 1;
String s = "q";
change(sb, n, s);
System.out.println(sb + " " + n + " " + s);
}
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: hi! 1 q. Метод получил копию ссылки на sb и через неё дописал !: это видно снаружи.
Что выведет
hi! 1 q
Разбор
Метод получил копию ссылки на sb и через неё дописал !: это видно снаружи. Присваивание нового StringBuilder поменяло только локальную копию. n примитив, копия увеличилась, оригинал нет. Строка неизменяема, s += "?" создал новую строку в локальной переменной.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Основы: типы, обёртки, static»
- char плюс int
- Изменили константу в библиотеке
- Деньги в double
- Ключ Long и get(int)
- final ссылка на список
- Автоупаковка
- Порядок инициализации
- Примитивы Java