(引用小總結)引數傳遞+引用總結---Java
阿新 • • 發佈:2021-02-05
一、理論總結
1、物件:一組相關資料的組織單位(相關資料的型別也是基本型別或引用型別)加上與其相關的一組操作。它在記憶體中表現為:一塊區域,儲存著相關的資料。
2、間接操作物件的一個工具/方法。
3、引用可以指向物件,也可以不指向物件。引用支援的操作有:=、==、!=、.、[]。
4、對解引用的理解+NPE(空指標異常),快速確定NPE的發生位置。
5、引用表現出“共享特性”(多個引用可指向同一個物件)但是一個引用不可同時指向多個物件!
6、形參的改變不會影響實參(所有資料型別均如此)
7、藉助多維陣列,認識引用。
二、引數傳遞小練習
import java. util.Arrays;
public class twoDimArray2 {
public static void main(String[] args) {
//形參的改變不會影響實參(與形參的資料型別無關)
long a=10;//基本型別
long b=20;
swap1(a,b);//實參
System.out.println(a);
System.out.println(b);
long[] a1={1,3,5,7};//引用型別
long[] b1={2,4,6 ,8};
swap2(a1,b1);//實參
System.out.println(Arrays.toString(a1));
System.out.println(Arrays.toString(b1));
//當多個引用指向同一個物件時
//通過其中一個引用對 物件 進行修改,由其他引用可看到該變化
//即 在方法中修改資料 讓方法外看到
swap3(a1,0,3);//發生改變
System.out.println(Arrays.toString(a1));
}
private static void swap3(long[] array, int indexA, int indexB) {
long t=array[indexA];//解引用
array[indexA]=array[indexB];
array[indexB]=t;
}
private static void swap2(long[] x, long[] y) {
long[] t=x;
x=y;
y=t;
}
private static void swap1(long x, long y) {
long t=x;
x=y;
y=t;
}
}
執行結果: