Java의 참조에 의한 전달 부족 및 프리미티브 교환에 미치는 영향
Java에서 매개변수를 메소드에 전달하는 것은 값에 따라 수행됩니다. 메서드 내의 매개 변수에 대한 변경 사항은 호출자의 변수에 반영되지 않습니다. 이는 두 기본 형식의 값을 교환하려고 할 때 문제가 됩니다.
값별 전달을 사용하여 기본 형식 교환 시도
Java에서 다음 교환 기능을 고려하세요.
<code class="java">void swap(int a, int b) { int temp = a; a = b; b = temp; }</code>
이 함수는 임시 변수를 생성하고 값을 수동으로 저글링하여 두 정수의 값을 교환하려고 시도합니다. 그러나 이 함수를 호출한 후에는 Java의 값 전달 의미로 인해 원래 값이 변경되지 않은 상태로 유지됩니다.
제한 극복
이 제한을 해결하려면 다음을 사용할 수 있습니다. 매개변수 전달에 대한 Java의 접근 방식을 활용하는 기술입니다. 스왑 함수 내에서 여러 할당을 사용하면 효과적으로 스왑을 달성할 수 있습니다.
<code class="java">int swap(int a, int b) { return a; } // Usage: y = swap(x, x = y);</code>
이 수정된 버전에서 스왑 함수는 a를 b에 할당한 다음 a를 반환합니다. 그런 다음 호출자는 반환 값을 y에 할당하고 x와 y의 실제 값을 바꿀 수 있습니다.
<code class="java">y = swap(x, x = y);</code>
여러 개체에 대한 일반 스와핑
이 기술은 다음과 같습니다. 동일한 유형의 여러 객체 교환을 지원하도록 일반화되었습니다.
<code class="java"><T> T swap(T... args) { return args[0]; } // Usage: z = swap(a, a = b, b = c, ... y = z);</code>
할당의 순차적 실행과 매개변수 전달에 의존하여 Java에서 객체를 효과적으로 교환할 수 있으며, "참조로 전달" 기능.
위 내용은 참조에 의한 전달 없이 Java에서 기본 값을 교환할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!