Java不允許程序員選擇按值傳遞還是按引用傳遞各個參數,只能
按值傳遞,但對於基本類型和對象類型不大一樣
基本類型(byte--short--int--long--float--double--boolean--char)的變量總是按值傳遞。就對象而言,不是將對象本身傳遞給方法,而是將對象的的引用或者說對象的首地址傳遞給方法,引用本身是按值傳遞的-----------也就是說,講 引用的副本傳遞給方法(副本就是說明對象此時有兩個引用了),通過對象的引用,方法可以直接操作該對象(當操作該對象時才能改變該對象,而操作引用時源對象是沒有改變的)。
現在說說數組:如果將單個基本類型數組的元素傳遞給方法,並在方法中對其進行修改,則在被調用方法結束執行時,該元素中存儲的並不是修改后的值,因為這種元素是按值傳遞,如果傳遞的是數組的引用,則對數組元素的后續修 改可以在原始數組中反映出來(因為數組本身就是個對象,int[] a = new int[2];,這里面的int是數組元素的類型,而數組元素的修改是操作對象)。
對於單個非基本類型數組的元素在方法中修改,則在被調用方法結束執行時,該元素中存儲的是修改后的值,因為這種元素是按引用傳遞的,對象的改動將在源數組的數組元素中反映出來。