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가 값에 의한 전달이라면 어떻게 내 bubbleSort 메서드 내에서 testArray를 조작하고 bubbleSorted testArray를 "반환"할 수 있습니까? 내 프로그램이 bubbleSort 메서드를 종료 한 후 bubbleSorted testArray를 파괴하지 않아야합니까? Java가 값에 의한 전달인지 참조에 의한 전달인지에 대해 온라인에서 상충되는 정보를 얻고 있으므로 이것을 이해하도록 도와주세요.
Java가 값에 의한 전달이라면 어떻게 내 bubbleSort 메서드 내에서 testArray를 조작하고 bubbleSorted testArray를 "반환"할 수 있습니까?
배열은 변경 가능 하기 때문에 : 상태가 변경 될 수 있습니다. 따라서 메서드는 아무것도 반환 하지 않지만 전달한 값이 참조하는 개체의 상태를 변경합니다.
전달하는 것 (객체 참조)은 값으로 전달됩니다. 그러나 참조하는 객체는 메모리의 다른 곳에 있으며 참조는 JVM이 어디에 있는지 알려주는 수단 일뿐입니다. 이것은 pass-by-reference (특히 객체가 아닌 변수 에 대한 참조에 관한 것임)의 "참조"라는 단어의 다른 사용법입니다 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다