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) ); } }