Sobes.tech
Назад к вопросам
Middle
4

Как передаются параметры в методы в Java — по ссылке или по значению?

Компании, где спрашивали
Лоция

Ответ от нейросети

sobes.tech AI

В Java параметры методов передаются только по значению. Это означает, что при вызове метода копируется значение аргумента и передается в параметр.

  • Для примитивных типов (int, double и т.д.) копируется само значение.
  • Для ссылочных типов (объекты) копируется значение ссылки, то есть адрес объекта в памяти.

Из-за этого внутри метода можно изменить состояние объекта, на который ссылается параметр, но нельзя изменить саму ссылку, чтобы она указывала на другой объект вне метода.

Пример:

void modify(StringBuilder sb) {
    sb.append(" world"); // изменит объект
    sb = new StringBuilder("new"); // изменит локальную копию ссылки
}

StringBuilder s = new StringBuilder("hello");
modify(s);
System.out.println(s); // выведет "hello world"

Здесь метод изменил содержимое объекта, но не изменил ссылку s вне метода.