從零學(xué)java筆錄-第36篇基礎(chǔ)語(yǔ)法完結(jié)篇- java中值傳遞和地址值傳遞And圖解

前言:

歡迎訪問(wèn)凱哥個(gè)人網(wǎng)站:www.kaigejava.com?

歡迎關(guān)注凱哥公眾號(hào):凱哥Java

本文是java基礎(chǔ)語(yǔ)法最后一篇佑淀。從下節(jié)課開始谎砾,我們將進(jìn)入-【從零學(xué)Java】的第二階段-->面向?qū)ο?/p>

本節(jié)內(nèi)容:

1:java中的值傳遞及圖解

2:地址值傳遞及圖解

3:第一階段(基礎(chǔ)語(yǔ)法)總結(jié)和第二階段預(yù)告

本文出處:《凱哥陪你學(xué)系列之java基礎(chǔ)篇.Java基本語(yǔ)法篇》中第36篇基礎(chǔ)語(yǔ)法完結(jié)篇- java中值傳遞和地址值傳遞And圖解

聲明:本文系凱哥Java(www.kaigejava.com)原創(chuàng)(微信id:kaigejava)。轉(zhuǎn)載請(qǐng)注明出處

一:java中的值傳遞

如下圖:

問(wèn)題:

①、②忘晤、③中分別輸出的是什么远舅?

我們嘗試著看代碼來(lái)進(jìn)行分析:

在①中我們知道 輸出的 a=10;b=20

然后調(diào)用了change()這個(gè)方法图柏。

所以應(yīng)該先輸出③。

我們來(lái)分析 在change()方法中裁着,參數(shù)a=10 ,參數(shù) b=20

所以 a=b,運(yùn)算之后矿酵,a的值就為20了全肮。

而 b = a+b。其實(shí)這個(gè)時(shí)候a=20了 所以b=20+20(b是不變的)

運(yùn)算之后b=40了

所以 ③輸出的應(yīng)該是 a = 20 b=40

然后程序回到main函數(shù)中哪自,接著往下走,就該輸出②了胧华。

那么請(qǐng)問(wèn)②處輸出多少?是 a=10 b=20 還是 a=20 b=40悲没?

我們先運(yùn)行下,看下輸出結(jié)果:

接下來(lái)我們圖解

圖解說(shuō)明:

1:先壓棧。程序先運(yùn)行main方法,根據(jù)棧的特點(diǎn)褂痰,main方法被壓倒棧底。

在main方法中驶冒,int a =10 ; int b = 20; 所以①出輸出的就是 a=10 b =20

2:接著change()方法進(jìn)棧崇猫,然后經(jīng)過(guò)運(yùn)行完成之后,在change方法中 int a = 20 ;int b = 40了。所以在③處輸出的a =20 b=4o

3:當(dāng)棧內(nèi)運(yùn)行完成之后,就開始彈棧了溢谤。所以-阀参,change方法先被彈棧所刀。(可以理解為子彈已經(jīng)出槍膛了)

4:接著main方法勉痴,所以②處輸出的就是 main 方法中的a 和 b的值了蒸矛。從圖中我們可以看出劣像,a = 10;b=20.所以在②處輸出的是 10和20

二:地址值傳遞及圖解

如下圖:

思考:

①處應(yīng)該輸出的是2

②處(在changeArr方法里面的)輸出的是多少?

③處輸出的是多少坏挠?

分析:

因?yàn)?arr[i]%2==0 這句代碼意思就是:arr中第i個(gè)元素如果模 2 == 0

才會(huì)執(zhí)行arr[i]*=2這句代碼的意思就是:arr[i]= arr[i]*2;

至于 模運(yùn)算(%)是什么和arr[i]*=2是什么庇楞,可以回顧下之前文章蛋褥。

所以②處輸出的是4.

那么③應(yīng)該是什么?

請(qǐng)看運(yùn)行結(jié)果:

內(nèi)存圖解聂使;

圖解說(shuō)明:

1:同樣main函數(shù)先被壓棧 到棧底

2:在堆區(qū)創(chuàng)建了arr數(shù)組并初始化了分別為1,2,3,4,5 所以在①輸出arr第二個(gè)元素就是2

3:接著changeArr方法進(jìn)棧

4:同樣 將數(shù)組 arr的地址指想了changeArr方法壁拉,

5:經(jīng)過(guò)changeArr方法運(yùn)算之后,數(shù)組第二個(gè)元素就變成4 柏靶,第四個(gè)元素變成8弃理。所以在②打印出的是4

6:程序運(yùn)行完成changeArr被彈棧(子彈出膛)。也就是引用arr數(shù)組的地址值被切斷了辆苔。如圖中被劃斷的

7:接著運(yùn)行main方法,此時(shí)main方法中arr的地址值依然指向的是 0x0011這個(gè)遥倦。我們從堆區(qū)中可以看到,在堆區(qū)中的arr={1豪硅,4,3,8,5}

所以在③打印出arr中第二個(gè)元素就是4

三:總結(jié)

通過(guò)本節(jié)學(xué)習(xí)痴昧,我們需要掌握

1:Java中值傳遞和址傳遞的區(qū)別

值傳遞瘤载,值是多少,就是多少统刮。

址傳遞瑞佩,有可能會(huì)變化的首启。如果其他方法引用這個(gè)地址值之后,進(jìn)行處理膀估,那么就會(huì)影響最終結(jié)果即纲。

下節(jié)預(yù)告:

下節(jié)開始我們將做個(gè)小項(xiàng)目:簡(jiǎn)單的《學(xué)生管理系統(tǒng)》礁遵,通過(guò)這個(gè)小項(xiàng)目,可以把之前學(xué)過(guò)的串聯(lián)起來(lái)薛窥,一起回顧java基礎(chǔ)語(yǔ)法拱镐。歡迎學(xué)習(xí)下一篇:《從零學(xué)java筆錄-第37篇基礎(chǔ)語(yǔ)法完結(jié)小項(xiàng)目練習(xí)-學(xué)生管理系統(tǒng) 基礎(chǔ)版》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屿衅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子诫给,更是在濱河造成了極大的恐慌香拉,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件中狂,死亡現(xiàn)場(chǎng)離奇詭異凫碌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)胃榕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門盛险,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瞄摊,“玉大人,你說(shuō)我怎么就攤上這事苦掘』恢模” “怎么了?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵鹤啡,是天一觀的道長(zhǎng)惯驼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)递瑰,這世上最難降的妖魔是什么祟牲? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮抖部,結(jié)果婚禮上说贝,老公的妹妹穿的比我還像新娘。我一直安慰自己慎颗,他們只是感情好乡恕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著俯萎,像睡著了一般几颜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上讯屈,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天蛋哭,我揣著相機(jī)與錄音,去河邊找鬼涮母。 笑死谆趾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叛本。 我是一名探鬼主播沪蓬,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼来候!你這毒婦竟也來(lái)了跷叉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤营搅,失蹤者是張志新(化名)和其女友劉穎云挟,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體转质,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡园欣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了休蟹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沸枯。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡日矫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出绑榴,到底是詐尸還是另有隱情哪轿,我是刑警寧澤,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布翔怎,位于F島的核電站缔逛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏姓惑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一按脚、第九天 我趴在偏房一處隱蔽的房頂上張望于毙。 院中可真熱鬧,春花似錦辅搬、人聲如沸唯沮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)介蛉。三九已至,卻和暖如春溶褪,著一層夾襖步出監(jiān)牢的瞬間币旧,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工猿妈, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吹菱,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓彭则,卻偏偏與公主長(zhǎng)得像鳍刷,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子俯抖,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

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

  • Win7下如何打開DOS控制臺(tái)输瓜? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,589評(píng)論 4 12
  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù),而在處理數(shù)...
    Java幫幫閱讀 1,587評(píng)論 0 9
  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 3,333評(píng)論 0 2
  • 本節(jié)主要內(nèi)容: 1:一維數(shù)組在動(dòng)態(tài)賦值在內(nèi)存中圖解芬萍。 2:本節(jié)總結(jié)&下節(jié)預(yù)告 本文出處:《凱哥陪你學(xué)系列之java...
    凱哥Java閱讀 235評(píng)論 0 1
  • 05.01_Java語(yǔ)言基礎(chǔ)(數(shù)組概述和定義格式說(shuō)明)(了解) A:為什么要有數(shù)組(容器)為了存儲(chǔ)同種數(shù)據(jù)類型的多...
    NgNono閱讀 143評(píng)論 0 0