У меня есть следующий код:Java: Почему этот метод обмена не работает?
public class Main {
static void swap (Integer x, Integer y) {
Integer t = x;
x = y;
y = t;
}
public static void main(String[] args) {
Integer a = 1;
Integer b = 2;
swap(a, b);
System.out.println("a=" + a + " b=" + b);
}
}
я ожидаю, что это напечатать = 2 Ь = 1, но он печатает обратное. Таким образом, очевидно, что метод подкачки не меняет значения a и b. Зачем?
Пожалуйста, обратитесь разницу между вызовом по значению и вызов по ссылке. –
В методе swap вы передаете «значения» объекта, а не ссылку на фактический объект, независимо от того, что вы делаете внутри метода swap, не будет влиять на переменные a и b. –