摘要:閱讀原文這題不會別說你懂值傳遞與引用傳遞即使工作過一階段的人也不一定能夠理解是值傳遞還是引用傳遞。概念值傳遞方法調(diào)用時,實參的數(shù)值被復(fù)制到另一個變量,然后傳遞復(fù)制的副本。
閱讀原文:這題不會!別說你懂值傳遞與引用傳遞
即使工作過一階段的人也不一定能夠理解Java是值傳遞還是引用傳遞。若不信,那么來看看下面這道題。
題目請先寫出你的答案,然后對比下輸出結(jié)果。
public class Test { private String str = new String("碼上實戰(zhàn)"); private char[] chars = {"星", "期", "一"}; private int num = 2019; private void change(String cStr, char[] cChars, int cNum) { cStr = "歡迎關(guān)注->碼上實戰(zhàn)"; //第一步 cChars[2] = "二"; //第二步 cNum = 2020; //第三步 } public static void main(String[] args) { Test test = new Test(); test.change(test.str, test.chars, test.num); System.out.println("str=" + test.str); System.out.println("chars=" + test.chars[0] + "," + test.chars[1] + "," + test.chars[2]); System.out.println("num=" + test.num); } }
輸出結(jié)果
str=碼上實戰(zhàn) chars=星,期,二 num=2019值傳遞還是引用傳遞?
首先,明確的告訴大家,Java只有值傳遞,沒有引用傳遞!無論理解不理解,先記住這點。
概念值傳遞
方法調(diào)用時,實參的數(shù)值被復(fù)制到另一個變量,然后傳遞復(fù)制的副本。
引用傳遞
方法調(diào)用時,實際參數(shù)的地址直接傳遞到方法中。
對比
- | 值傳遞 | 引用傳遞 |
---|---|---|
區(qū)別 | 創(chuàng)建副本 | 不創(chuàng)建副本 |
改變 | 函數(shù)中無法改變實際參數(shù) | 函數(shù)中可以改變原始實際參數(shù) |
注意
這下你看清了吧,值傳遞和引用傳遞的真正區(qū)別是:傳遞時,實際參數(shù)是否復(fù)制了副本! 不要去管參數(shù)是基本類型還是引用類型。
解題為什么char數(shù)組中改變了?
因為 實參和形參指向的是同一個數(shù)組對象,方法中改變的不是參數(shù)本身,而是改變了它所指向的對象。
錯誤的區(qū)分基本類型和引用類型
由題可知,無論是String還是int,即使在方法中都進行改變,但實參都沒有改變,所以和參數(shù)什么類型沒有關(guān)系。
如果你有什么問題,歡迎留言交流。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/73915.html
摘要:閱讀原文小而有料的想聽文章核心內(nèi)容語音對話版,請到微信公眾號碼上實戰(zhàn),閱讀原文這塊肉雖然小,但不可不知,因為不僅面試可能會問,實際中也常使用。參考書籍編程思想深入理解虛擬機更多精彩技術(shù)文章盡在微信公眾號碼上實戰(zhàn) 閱讀原文:小而有料的final(想聽文章核心內(nèi)容語音對話版,請到微信公眾號——碼上實戰(zhàn),閱讀原文) final這塊肉雖然小,但不可不知,因為不僅面試可能會問,實際中也常使用。就...
摘要:知道存在是很有用的,這樣當(dāng)你在別人的代碼中遇到它時,你就知道它是什么了。如上面所示的示例所示,元素選擇器具有很低的特殊性。類選擇器具有更高特殊性,所以將戰(zhàn)勝元素選擇器。個位在整個選擇器中每包含一個元素選擇器或偽元素就在該列中加分。 在實際的工作中,我們可能還有些疑惑,當(dāng)有多個選擇器作用在一個元素上時,哪個規(guī)則最終會應(yīng)用到元素上?其實這是通過層疊機制來控制的,這也和樣式繼承(元素從其父元...
摘要:前段時間試譯了的好書,其中的第二章,書中對的講解和舉例可以說相當(dāng)全面,看完之后發(fā)現(xiàn)自己并不太懂相對單位,也希望分享給大家,所以有了這個譯文系列。 showImg(https://segmentfault.com/img/bVbdOMr?w=920&h=450); 前段時間試譯了Keith J.Grant的CSS好書《CSS in Depth》,其中的第二章《Working with r...
摘要:還有視口相關(guān)單位,依賴瀏覽器的視口大小來定義長度的。如果你不熟悉視口相關(guān)單位的話,在這里簡單介紹一下。筆記視口相關(guān)單位對于大多數(shù)瀏覽器還是一項比較新的特性,所以當(dāng)你試圖把這個特性和其他樣式混搭時,有可能會有一些很奇怪的。 前段時間試譯了Keith J.Grant的CSS好書《CSS in Depth》,其中的第二章《Working with relative units》,書中對rel...
摘要:無單位數(shù)字和行高有一些屬性可以接收不帶單位的數(shù)值意思就是一個不帶長度單位的數(shù)字,如和等于,等于,如此類推。警告不帶單位的只可以表示長度單位和百分比的值,譬如和。段落繼承了的行高。長度有兩種類型絕對的和相對的。 前段時間試譯了Keith J.Grant的CSS好書《CSS in Depth》,其中的第二章《Working with relative units》,書中對relative ...
閱讀 1084·2021-11-24 09:39
閱讀 1316·2021-11-18 13:18
閱讀 2452·2021-11-15 11:38
閱讀 1836·2021-09-26 09:47
閱讀 1639·2021-09-22 15:09
閱讀 1632·2021-09-03 10:29
閱讀 1520·2019-08-29 17:28
閱讀 2960·2019-08-29 16:30