java兩個數進行交換,使用方法不能實現的問題分析
阿新 • • 發佈:2018-11-21
class Test{ public static void main(String[] args){ int a=5; int b=11; swap(a,b); //沒有任何卵用,因為方法結束後,方法內部作出的動作,包括變數值得改變都已經終結, //絲毫不會影響該方法外賣的值,你可以理解為別人的蛋蛋碎了,但是你的蛋蛋還在. so輸出的結果不會發生變化 } public void swap(int i,int j){ //方法被呼叫後會在棧區開闢一個空間,方法內部執行結束後,使用 //的棧區就地銷燬了,內部的什麼鬼都被消滅了,外面根本不知道這 //東西是個什麼玩意(外面的同樣存在於棧區的變數) int temp=i; i=j; j=temp; } }
如果還是不懂,我給你個比喻, 比如說現在有三個房間,有兩個房間是正在造人運動,有一個房間是正在做狸貓換太子的把戲,然並卵,結果你問造人的是不是做了狸貓換太子,最後的迴應是什麼,給你兩巴掌
也就是說 : a 和 b 和呼叫 swap(a,b)是獨立做事情的,互相沒有互動行為 .