В Java все передается по значению, даже объекты передаются по значению ссылки на них. Это значит, что когда вы передаете переменную в метод, то передается ее значение, которое можно изменять внутри метода, но наружу метода это не влияет. Однако, если переменная ссылается на объект, то передается копия ссылки на объект, который находится в хипе, а не сам объект. Таким образом, если вы изменяете объект в методе, то эти изменения будут видны наружу метода, потому что ссылки снаружи и внутри метода указывают на один и тот же объект в хипе. Например, рассмотрим класс Person: class Person {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
} Теперь вызовем метод, который изменяет значение поля name переданного объекта: public static void changeName(Person p) {
p.setName("John");
} Используя этот метод можно изменить имя объекта p, который был передан в метод: Person p = new Person();
p.