Java-值傳遞
阿新 • • 發佈:2017-08-06
spa pre class 基本類型 string 基本類 賦值 rgs 一對一
public class StringBufferTestQuote { // x = a;(a,x地址指向同一個StringBuffer對象) y = b;(b,y地址指向同一個StringBuffer對象) public static void appendStringBuffer(StringBuffer x, StringBuffer y) { x.append(y); // 對a,x地址指向的StringBuffer對象進行追加內容操作 y = x; System.out.println(x + " " + y); //AB AB } public static void main(String[] args) { StringBuffer a = new StringBuffer("A"); // 棧內存中的a地址指向堆內存中的一個StringBuffer對象 StringBuffer b = new StringBuffer("B"); // 棧內存中的b地址指向堆內存中的一個StringBuffer對象 appendStringBuffer(a, b); // 引用傳遞:將a地址和b地址分別復制一份給被掉方法 System.out.println(a + " " + b); //AB B } }
總結:(總結很重要)
1.java中參數傳遞一律是值傳遞,基本類型->傳遞數值得一份拷貝給被調方法,引用類型->傳遞引用地址的一份拷貝給被掉方法。
2.引用地址賦值改變的是引用地址->該引用指向其它對象。
3.引用地址屬於局部變量,作用範圍在定義的代碼塊中。
4.引用與對象可能是多對一,一對一,零對一的關系。
Java-值傳遞