Sobes.tech
Back to questions
Middle
8

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

Companies where asked
Лоция

Answer from AI

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 вне метода.