Java에는 값 전달과 주소 전달이라는 두 가지 매개변수 전달 메커니즘이 있습니다.
기본 유형이 매개변수로 전달되면 이 복사본을 어떻게 변경하더라도 원래 값은 변경되지 않습니다. -값별.
객체를 매개변수로 전달하면 메모리에 있는 객체 주소의 복사본이 복사되어 매개변수에 전달됩니다.
public static void main(String[] args) { int n =3; // ① System.out.println(n); // 3 chageData(n); // ② System.out.println(n); // 3}public static void chageData(int num){ num = 10; // ③}
관찰 결과를 출력하고 n의 값이 변하지 않았는지 확인합니다.
n, num은 기본형이므로 변수에 값이 직접 저장됩니다.
흐름도는 다음과 같습니다(코드의 ①②③에 해당).
public static void main(String[] args) { String str = "hello"; // ① System.out.println(str); // hello chageData(str); //② System.out.println(str); // hello}public static void chageData(String s){ s ="world"; // ③}결과를 관찰하고 str이 변경되지 않았음을 확인하세요. 다음은 흐름도를 기반으로 분석한 것입니다.
public static void main(String[] args) { StringBuffer stb = new StringBuffer("hello"); // ① System.out.println(stb); // hello chageData(stb); // ② System.out.println(stb); // hello world}public static void chageData(StringBuffer s){ s.append("world"); // ③} }결과를 관찰하고 stb가 변경되었음을 확인하세요. StringBuffer 객체는 Variable이므로 내용을 변경해도 새 객체가 생성되지 않습니다. 위 내용은 14.Java Basics - Parameter Passing의 내용입니다. 더 많은 관련 내용을 보려면 비용을 지불하세요. PHP 중국어 넷(www.php.cn)에 주목하세요!