>  기사  >  Java  >  14.자바 기초 - 매개변수 전달

14.자바 기초 - 매개변수 전달

黄舟
黄舟원래의
2017-02-27 10:55:091057검색

기본 개념

Java에는 값 전달과 주소 전달이라는 두 가지 매개변수 전달 메커니즘이 있습니다.

  • 기본 유형이 매개변수로 전달되면 이 복사본을 어떻게 변경하더라도 원래 값은 변경되지 않습니다. -값별.

  • 객체를 매개변수로 전달하면 메모리에 있는 객체 주소의 복사본이 복사되어 매개변수에 전달됩니다.


예제 연구

1. 기본 유형이 매개변수로 전달됩니다

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은 기본형이므로 변수에 값이 직접 저장됩니다.

흐름도는 다음과 같습니다(코드의 ①②③에 해당).

14.자바 기초 - 매개변수 전달


2.객체는 매개변수로 전달됩니다. 🎜>

먼저 문자열 예를 살펴보세요.

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이 변경되지 않았음을 확인하세요. 다음은 흐름도를 기반으로 분석한 것입니다.

  • ①이 실행된 후 메모리를 가리키는 주소 인덱스를 포함하는 객체 참조 str이 힙에 생성됩니다. 실제 String 객체

  • 는 ②에서 객체 참조 s를 생성하고 전달 참조를 통해 "hello"라는 주소 인덱스도 가져옵니다.

  • 3에서 개체 참조를 다시 할당합니다. 객체의 값은 "hello" -> "world"여야 합니다. 그러나 String의 불변성 때문에 새로운 객체를 생성합니다. 왜냐하면 String이 변경되면 새 객체가 생성되기 때문입니다.

14.자바 기초 - 매개변수 전달


StringBuffer 예제를 다시 살펴보세요.

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.자바 기초 - 매개변수 전달

위 내용은 14.Java Basics - Parameter Passing의 내용입니다. 더 많은 관련 내용을 보려면 비용을 지불하세요. PHP 중국어 넷(www.php.cn)에 주목하세요!



성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.