public static void main(String[] args) {
int sizeOfTestArray = 50;
int[] testArray = new int[sizeOfTestArray];
Random random = new Random();
for (int i = 0; i < sizeOfTestArray; i++) {
testArray[i] = random.nextInt(100);
}
System.out.println(Arrays.toString(testArray));
bubbleSort(testArray);
System.out.println(Arrays.toString(testArray));
}
public static void bubbleSort(int[] arr) {
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr.length - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
Если Java является передачей по значению, как я могу манипулировать testArray внутри моего метода bubbleSort и «возвращать» тестовый массив bubbleSorted? Должен ли объект bubbleSorted testArray быть уничтожен после того, как моя программа выйдет из метода bubbleSort? Пожалуйста, помогите мне понять это, так как я получаю противоречивую информацию в Интернете о том, является ли Java передачей по значению или передачей по ссылке.Как алгоритм сортировки по пустоте «возвращает» результат?
Интерфейсы обратного вызова могут «возвращать» результаты асинхронно –
«Передача по значению» означает, что ссылка на массив передается. Вы все равно можете изменить содержимое массива. – markspace
Чтобы ответить на фактический вопрос, вы указали массив как параметр, который является «значением», являющимся ссылочным указателем на массив в памяти. Любые изменения внутри метода будут обновлять это эталонное значение. –