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