У меня есть вопрос относительно адреса массивов. Позволяет сказать, что у нас есть эта часть кода:Java, возвращающий адрес массива исходного массива
main(){
int[] numbers = {1, 2, 3};
method(numbers);
}
method(int[] methodNumbers){
methodNumbers= new int[methodNumbers.length];
return methodNumbers;
}
Вот что я думаю, что знаю. Пожалуйста, поправьте меня, если я ошибаюсь.
Так что я знаю, что есть основная рама стека, кадр стека метода и куча. В нашем основном хранится int[] numbers
. Он указывает на адрес в куче, где хранятся индексы. Мы передаем int[] numbers
в параметр methodNumbers
, поэтому теперь они указывают на то же место в куче. Внутри нашего метода мы объявляем новый int для нашего methodNumbers
, поэтому теперь массив int[] methodNumbers
указывает на новое местоположение в куче. Но в итоге мы возвращаем methodNumber
.
Мой вопрос: где находится int[] numbersArray
, указывающий на конец. Указывает ли оно на то же место или указывает на то же место, что и methodNumbers
?
Там нет ИНТ [] numbersArray в коде вы предоставили – Coder
'numbers' указывает на тот же объект, как и до вызова метода. –