Некоторое время назад я начал расследовать пакет java.util.concurrent
. И мой вопрос о классе AtomicStampedReference
. Класс имеет методМетод AtomicStampedReference.get(): почему параметр является массивом?
public V get(int[] stampHolder) {
...
}
который получает ссылку и печать атомарно (пожалуйста, поправьте меня, если я ошибаюсь).
Есть ли особые причины, почему параметр для метода является массивом? Документация ничего не говорит об этом.
Понятно, что на самом деле мы получаем два свежих значения. Но почему г-н. Дуг Ли решил использовать 'int [] stampHolder' вместо использования' int stampHolder' например? Этот метод использует только первый элемент массива - 'stampHolder [0] = p.integer'. –
@DmitriyProtsenko: Хорошо, если метод был определен как «public V get (int stampHolder)», если «stampHolder» изменен, вызывающий объект не получит обновленное значение, поскольку он передается по значению. см. http://stackoverflow.com/questions/40480/is-java-pass-by-reference-or-pass-by-value – user140547
Последняя ссылка очень полезна. Теперь у меня нет вопросов. Благодаря! –