Выбор ответа Junior Основы: типы, обёртки, static спрашивают часто обновлено

Передача объекта в метод

Вопрос

Как Java передаёт объект в метод?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: По значению: метод получает копию ссылки и меняет объект, но не переменную. В Java есть только передача по значению.

Варианты ответа

  1. По ссылке: метод получает саму переменную и может присвоить ей новый объект
  2. По значению: метод получает копию ссылки и меняет объект, но не переменнуюправильный ответ
  3. Объекты передаются по ссылке, а примитивы по значению, как и в C# с ref
  4. Передаётся глубокая копия объекта, поэтому изменения внутри метода не видны

Разбор

В Java есть только передача по значению. Для объекта значение это ссылка, и метод получает её копию. Через копию можно вызвать sb.append(...), и это видно снаружи. Но sb = new StringBuilder() внутри метода меняет только локальную копию. «По ссылке» (как ref в C#) в Java нет, поэтому вариант про «объекты по ссылке» популярное, но неверное упрощение. Глубокого копирования при вызове тоже нет.

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

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