值傳遞.把乙個基本資料型別的變數傳遞給乙個方法後,這個方法內對這個變數的任何操作都不會影響方法外的這個變數.
引用傳遞.string是特殊的基本型別.所以雖然可以被new出來,但它在方法間使用傳遞時,可以把它當做是基本資料型別.
乙個物件如果作為引數傳遞給乙個方法後,實際上是把棧中的引用賦了過去,這就好比你建立了乙個物件a,再宣告乙個物件b等於a,那麼其實b拿到的就是a在棧中的引用,a和b對這個物件的任何操作,效果都是同樣的.所以,方法內對非基本資料型別引數的使用,都是操作了該物件在棧中的引用,所以都會對方法外的那個引數造成影響;
但是,如果對方法內的引數重新賦值,使引數 a=new a();那麼這時候引數a與方法外的引數a就沒有了任何關係.所有的操作都不會影響方法外的那個引數.
java 值傳遞和引用傳遞
值傳遞 方法呼叫時,實際引數把它的值傳遞給對應的形式引數,方法執行中形式引數值的改變不影響實際參 數的值。引用傳遞 也稱為傳位址。方法呼叫時,實際引數的引用 位址,而不是引數的值 被傳遞給方法中相對應的形式引數,在方法執行中,對形式引數的操作實際上就是對實際引數的操作,方法執行中形式引數值的改變將會...
Java 值傳遞和引用傳遞
一 值傳遞 方法呼叫時,實際引數把它的值傳遞給對應的形式引數,函式接收的是原始值的乙個copy,此時記憶體中存在兩個相等的基本型別,即實際引數和形式引數 後面方法中的操作都是對形參這個值的修改,不影響實際引數的值 看下面這個值傳遞的例子。public class transfertest publi...
Java的值傳遞和引用傳遞
值傳遞 值傳遞是基本資料型別的資料傳遞,是棧中的資料 基本資料型別的資料作為方法的引數進行傳遞,那麼在方法中會另外開闢乙個新的記憶體空間,跟原來的記憶體空間不是乙個記憶體空間,如果在方法中對引數的值進行更改,不糊影響原來的記憶體空間的值 如果非要獲取方法中修改後的值,則需要把修改後的值返回出來 引用...