Встречается на собеседованиях • сегодня

Почему нельзя получить доступ к измененным примитивам из вызывающего метода

В Java примитивные типы передаются в методы по значению (pass-by-value), а не по ссылке. Это означает, что при вызове метода создается копия значения примитива, и все изменения внутри метода применяются только к этой копии. Оригинальная переменная в вызывающем коде остается неизменной.

Пример:

java
void increment(int x) {
    x++; // изменяется копия
}

public static void main(String[] args) {
    int num = 5;
    increment(num);
    System.out.println(num); // выведет 5, а не 6
}

Для изменения примитива из вызывающего метода нужно либо:

  1. Вернуть новое значение через return
  2. Использовать обертку (например, AtomicInteger)
  3. Завернуть примитив в объект (но это уже будет передача по ссылке)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы