java中對象引用,特別作為參數時候注意事項


1、基礎知識

1Byte=8bit
Byte和byte一個是對象,一個是基本數據類型而已,都是8bit

2、java中對象引用和值傳遞:
(1)、java中若一對象當作參數就是相當於,將變量對應的指向的地址內容傳遞進去了
如下面代碼:

 public class Test {
  public static void main(String[] args) {
    StringBuffer a = new StringBuffer("A"); 
    StringBuffer b = new StringBuffer("B"); 
    operator(a, b); 
    System.out.println(a + "," + b); 
	} 
public static void operator(StringBuffer x, StringBuffer y) { 
    x.append(y); y = x; 
}
}

運行結果為AB,B
operator(a, b); 參數傳遞其實就是將a引用的內容給x引用,b引用的內容給y引用,內存中有2個緩沖區“A”、“B”,而執行的代碼里是最終將這2個緩沖區變成了“AB”,“B”

此時x、y都指向了“AB”緩存區,而a依舊指向的是第一個緩存去“AB”,b指向的第二個緩沖區,因此仍是“B”

同理如下面代碼,運行后x,y的指向交換了,但a、b指向的數組交換不會成功,仍然是原來的結果。因此想在函數里改變指向,只有真正改變引用的內容,即改變數組內容來交換.

public class test {

	public static void main(String[] args) {

	int a[]={1,2,3};
	int b[]={5,6,7,};
	
	change(a,b);
	System.out.println(Arrays.toString(a) );
	System.out.println(Arrays.toString(b) );
	}
	
	public static void change(int[]x,int[]y)
	{
		int []c=x;
		x=y;
		y=c;
		System.out.println(Arrays.toString(x) );
		System.out.println(Arrays.toString(y) );
	}
	}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM