色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java簡述引用和傳值的區(qū)別

錢多多1年前5瀏覽0評論

Java中常用的數(shù)據(jù)類型包括基本數(shù)據(jù)類型和引用數(shù)據(jù)類型,其中基本數(shù)據(jù)類型在傳遞時是按值傳遞的,而引用數(shù)據(jù)類型在傳遞時是按引用傳遞的。具體來說,就是:

基本數(shù)據(jù)類型按值傳遞

public static void main(String[] args) {
int a = 1;
int b = 2;
System.out.println("交換前:a=" + a + ", b=" + b);
swap(a, b);
System.out.println("交換后:a=" + a + ", b=" + b);
}
private static void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}

上述代碼中,swap()方法內(nèi)部是交換了x和y的值,但是實際上并沒有交換主函數(shù)中的a和b的值,因為在方法中傳遞的是a和b的副本,而不是它們的引用。因此,方法內(nèi)部的修改并不會影響主函數(shù)中的變量。

引用數(shù)據(jù)類型按引用傳遞

public static void main(String[] args) {
int[] arr = {1, 2};
System.out.println("交換前:arr[0]=" + arr[0] + ", arr[1]=" + arr[1]);
swap(arr);
System.out.println("交換后:arr[0]=" + arr[0] + ", arr[1]=" + arr[1]);
}
private static void swap(int[] arr) {
int temp = arr[0];
arr[0] = arr[1];
arr[1] = temp;
}

上述代碼中,swap()方法接收的是一個int類型的數(shù)組的引用,因此在方法中修改數(shù)組元素的值會影響主函數(shù)中的變量。

需要注意的是,如果在方法中改變了引用,比如將方法的參數(shù)指向了一個新的對象,那么這種改變是不會影響原來的引用的。