在Java編程中,數(shù)據(jù)類型分為兩種:引用類型和基本類型。其中,基本類型是按值傳遞的,而引用類型則是按引用傳遞。
public static void main(String[] args) { int a = 10; int b = a; b = 20; System.out.println("a=" + a);// a=10 System.out.println("b=" + b);// b=20 }
在上面的示例中,a是一個(gè)整數(shù)類型的變量,它的值為10。當(dāng)我們把a(bǔ)的值賦給b時(shí),b的值也變成了10。但是,當(dāng)我們把b的值改為20時(shí),a的值并沒有發(fā)生變化。這是因?yàn)榛绢愋褪前粗祩鬟f的,也就是說(shuō),b只是復(fù)制了a的值,并沒有對(duì)a產(chǎn)生任何影響。
public static void main(String[] args) { int[] a = {1, 2, 3}; int[] b = a; b[0] = 4; System.out.println("a[0]=" + a[0]);// a[0]=4 System.out.println("b[0]=" + b[0]);// b[0]=4 }
在上面的示例中,a和b是兩個(gè)整數(shù)類型的數(shù)組,它們都包含了1、2、3三個(gè)元素。當(dāng)我們把a(bǔ)的地址賦給b時(shí),b也指向了數(shù)組a。因此,當(dāng)我們修改b[0]的值時(shí),a[0]的值也會(huì)隨之改變。這是因?yàn)橐妙愋褪前匆脗鬟f的。
總之,對(duì)于基本類型,傳遞的是它們的具體值,而對(duì)于引用類型,傳遞的是它們所指向的對(duì)象的地址。