javaの値伝達、アドレス伝達、参照伝達について詳細に説明する。


javaの値伝達、アドレス伝達、参照伝達について詳細に説明する。
ずっと来て、価値の伝達と住所の伝達に対してよく知っていると感じています。さっきソース中国でJavaの中の価値伝達と住所伝達を紹介しました。次にまとめて、分かりやすくします。
以前の理解によれば、javaでは基本的なデータタイプは値伝達であり、対象はアドレス(参照)伝達である。みんなに例を見せます。

public class ObjectTrans { 
   
  public static void main(String[] args) { 
    String name = "123"; 
    SChange(name); 
    System.out.println(name); 
  } 
     
  public static void SChange (String str) {   
    str = "234"; 
  }  
   
}
この例の出力は123ですか?それとも234ですか?結果は123です。why一つの言葉は、対象も値伝達であり、この対象の引用をcopyとしただけです。
実はjavaはもともと値伝達で、c++のような指針伝達がなく、段階的に上のコードを分析しています。
1、name=「123」
2、SChangeを呼び出す  strとnameは共に「123」を指します。
3、strは値を再割り当てし、「234」を指す。
4、nameの指し方は変わらないですか?それとも「123」ですか?
次は別のコードを見ます。

public class ObjectTrans { 
   
  public static void main(String[] args) { 
    StringBuilder name = new StringBuilder("123"); 
    SChange(name); 
    System.out.println(name); 
  } 
     
  public static void SChange (StringBuilder str) {   
    //str = "234"; 
    str.append("234"); 
  }  
   
}
このコードの出力の結果は何ですか?答えは123234、why?同じステップの分析:
1、name=「123」
2、SChangeを呼び出す  strとnameは共に「123」を指します。
3、対象の値を変更する「123」+「234」
4、引用は変わっていません。ただ値が変わっただけです。結果は123234です。
分からなかったらメッセージをください。自分でよく分析してください。一つの言葉を覚えてください。javaは価値伝達だけです。
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。