JAVA值傳遞 & 引用傳遞

先解釋一下分別是什么意思吸奴,

????值傳遞:作為參數(shù)傳遞時只傳遞了值斩狱,參數(shù)本身沒有傳遞网沾,如果被傳遞的方法改變傳遞后的變量參數(shù)值心软,原變量不會改變壕吹。在JAVA中顯式的值傳遞參數(shù)是各類型變量例如: int double char String Integer 等都是。

? ? 引用傳遞: 作為參數(shù)傳遞時傳遞的是參數(shù)本身删铃,當(dāng)被傳遞方法改變傳遞后的變量參數(shù)值耳贬,原參數(shù)也會發(fā)生改變。一般來說我們自定義的類基本都屬于這種情況猎唁,那么為什么String類型變量本質(zhì)也是對象但是沒有出現(xiàn)這種情況咒劲,這個后邊會詳細解釋。

注意:在C語言里有引用傳遞這種說法诫隅,但是在JAVA里雖然有類似效果但是實質(zhì)上不存在任何引用傳遞腐魂,我們看到的類似引用傳遞的效果本質(zhì)上還是值傳遞,原因下邊慢慢看逐纬。

????堆 & 棧 的定義在之前已經(jīng)說過蛔屹,那么這里說一下,基本類型變量 int boolean char float double等這些基本類型在定義后其數(shù)據(jù)是存在棧里這里說過风题,那么基本類型變量傳遞的時候是只傳遞了一個值判导,新變量本身除了值和原型一致就沒有任何其他關(guān)系嫉父,所以基本類型變量傳遞是值傳遞。(注意雖然java是面向?qū)ο缶幊萄廴校腔绢愋妥兞坎皇菍ο螅〝?shù)組是對象)绕辖,為了解決這個問題有了封裝類。)


? ? 那么String Integer這些封裝類型呢擂红?我們將 str傳遞過去實際上相當(dāng)于 String str=“呵呵”仪际; String st=str;那么傳遞的時候這里注意了,這里傳遞的時“地址”這個值昵骤,所以 st=str 只是將str所指向的地址賦值給st树碱,按理說既然是st和str公用一個地址那么當(dāng)st改變時str也應(yīng)該改版對吧,那么為什么原變量str無改變呢变秦。這里涉及到String 及 Integr 等封裝類的源代碼成榜,看下Stirng的源代碼

????發(fā)現(xiàn)沒,這里value是final常量不可改的蹦玫,而且在源代碼里沒有set方法赎婚,也就意味著不能一旦定義不能修改值,那么也就意味著平時我們修改值實際上是相當(dāng)于在堆里新劃分出了一塊空間樱溉,創(chuàng)建了一個新的String對象挣输,然后修改變量的指向使其指向新對象,所以值改變了福贞。

? ? 但是我們平時定義類的時候很少講成員變量定義為final并且不設(shè)定set方法撩嚼,所以我們自定義類傳遞時傳遞的是堆的指向也就地址,并且成員變量是可改的那么這時效果是引用傳遞效果(雖然本質(zhì)是值傳遞)挖帘。

這里有個鏈接也可以看下完丽,很詳細的https://blog.csdn.net/wabiaozia/article/details/52492557

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市拇舀,隨后出現(xiàn)的幾起案子舰涌,更是在濱河造成了極大的恐慌,老刑警劉巖你稚,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異朱躺,居然都是意外死亡刁赖,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門长搀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宇弛,“玉大人,你說我怎么就攤上這事源请∏姑ⅲ” “怎么了彻况?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舅踪。 經(jīng)常有香客問我纽甘,道長,這世上最難降的妖魔是什么抽碌? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任悍赢,我火速辦了婚禮,結(jié)果婚禮上货徙,老公的妹妹穿的比我還像新娘左权。我一直安慰自己,他們只是感情好痴颊,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布赏迟。 她就那樣靜靜地躺著,像睡著了一般蠢棱。 火紅的嫁衣襯著肌膚如雪锌杀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天裳扯,我揣著相機與錄音抛丽,去河邊找鬼。 笑死饰豺,一個胖子當(dāng)著我的面吹牛亿鲜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播冤吨,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼蒿柳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漩蟆?” 一聲冷哼從身側(cè)響起垒探,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怠李,沒想到半個月后圾叼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡捺癞,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年夷蚊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片髓介。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡惕鼓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出唐础,到底是詐尸還是另有隱情箱歧,我是刑警寧澤矾飞,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站呀邢,受9級特大地震影響洒沦,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驼鹅,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一微谓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧输钩,春花似錦豺型、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至剪验,卻和暖如春肴焊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背功戚。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工娶眷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人啸臀。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓届宠,卻偏偏與公主長得像,于是被迫代替她去往敵國和親乘粒。 傳聞我的和親對象是個殘疾皇子豌注,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容