Назад к вопросам
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 вне метода.