最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

高頻面試題,值傳遞和引用傳遞你遇到過嗎?

2022-03-16 15:15 作者:千鋒教育  | 我要投稿

hello大家好,我又和大家見面了,各位還記得上海千鋒文哥嗎?文哥最近帶的班級畢業(yè)了,班里的學(xué)員都在面試找工作。通過大家的面試情況我們發(fā)現(xiàn),企業(yè)針對java初級開發(fā)工程師的要求主要集中在對java基礎(chǔ)知識點(diǎn)的考察。

所以如果你的java基礎(chǔ)知識掌握得非常扎實(shí)牢固,拿一份理想的offer是不難的。這就要求各位童鞋們在學(xué)習(xí)的時(shí)候一定要注重基礎(chǔ)知識的理解和掌握,切不可眼高手低,走馬觀花。

今天,文哥通過自己班級學(xué)員的面試情況,總結(jié)了一道非常高頻的面試題分享給大家。這就是值傳遞和引用傳遞的理解。為什么文哥單拿這道題來講解呢?因?yàn)榘嗬锏膶W(xué)員不止一個(gè)人被問到了這個(gè)問題(歷屆學(xué)員也經(jīng)常被問到這個(gè)問題),所以你是不是要拍拍大腿認(rèn)真看了?

好了,重點(diǎn)來了。

所謂傳遞,在java中其實(shí)就是將實(shí)際參數(shù)賦值給形式參數(shù)。那么什么是值傳遞,什么又是引用傳遞呢?現(xiàn)在文哥先給你說說值傳遞。

  • 值傳遞:方法在調(diào)用的時(shí)候,實(shí)際參數(shù)把它的值賦予給形式參數(shù),但是形式參數(shù)的數(shù)據(jù)類型只能是基本數(shù)據(jù)類型和String。形式參數(shù)和實(shí)際參數(shù)在內(nèi)存上是兩個(gè)獨(dú)立的變量,對形式參數(shù)的修改并不會影響實(shí)際參數(shù)的值(敲黑板,這點(diǎn)很重要)。

概念搞清楚之后,我們一起來看下面的代碼:


請問結(jié)果是多少?

很多同學(xué)可能不假思索的回答:100!因?yàn)閜assingParameter方法的內(nèi)部對b值重新賦予了。事實(shí)上并不是你們想的那樣。

下面我們結(jié)合我們的定義和代碼來畫一張圖:


我們現(xiàn)在解讀一下這幅圖的意思:

  • 我們先看main方法,main方法里面將實(shí)際參數(shù)b傳遞給passingParameter方法的形式參數(shù)a,由于形式參數(shù)a是int類型,所以可以判定這是值傳遞。

  • 根據(jù)我們上面給值傳遞的定義,passingParameter(b);

  • 這句代碼里面的b的值只是int b = 10的復(fù)制品(或者說是化身)。

  • 所以不管passingParameter方法內(nèi)部如何對這個(gè)復(fù)制品進(jìn)行操作,永遠(yuǎn)也無法修改b本身的值。

  • 所以main方法里面的輸出語句輸出的是b值本身,也就是10。這么說大家聽懂了不咯?

下面我們再看看看引用傳遞。

引用傳遞:指的是在方法調(diào)用時(shí),傳遞的實(shí)際參數(shù)是java對象,也就是對象的內(nèi)存空間的地址。而形式參數(shù)也會指向這一內(nèi)存地址。注意被傳遞的形式參數(shù)的數(shù)據(jù)類型必須是引用數(shù)據(jù)類型(又敲黑板了,這點(diǎn)很重要)。

概念理解清楚之后,我們再來看一段代碼:

請問main方法執(zhí)行之后輸出的結(jié)果是多少?說18就對了。為了便于大家理解,我再畫一幅圖:

現(xiàn)在我們來解讀一下這幅圖的意思:

我們先看main方法,main方法中給passingParameter方法傳遞了一個(gè)student對象,由于passingParameter的形式參數(shù)是Java對象,故這種傳遞稱之為引用傳遞。

  • 根據(jù)代碼,main方法中new的student的對象是在堆內(nèi)存中開辟空間并創(chuàng)建的,所以student這個(gè)變量指向了這個(gè)對象。根據(jù)引用傳遞的概念,傳遞的是對象的內(nèi)存地址。

  • 由此可得passingParameter的形式參數(shù)student也指向了這個(gè)對象的內(nèi)存地址,所以在passingParameter方法內(nèi)部對age屬性進(jìn)行修改,是對實(shí)際參數(shù)和形式參數(shù)共同指向的那個(gè)對象進(jìn)行修改。

  • 所以main方法中最后輸出的值是對象修改之后的屬性值。這么說大家聽懂了不咯?

好了,這就是文哥今天給大家分享的一道經(jīng)典而又高頻的面試題,希望對大家的java學(xué)習(xí)能夠帶來幫助。

2022新版Java高頻面試題馬上上線,不要錯(cuò)過~?

點(diǎn)擊千鋒教育主頁——?jiǎng)討B(tài)



高頻面試題,值傳遞和引用傳遞你遇到過嗎?的評論 (共 條)

分享到微博請遵守國家法律
安达市| 宁夏| 雅江县| 镇原县| 大冶市| 巧家县| 南投县| 三门县| 永春县| 延吉市| 景德镇市| 虞城县| 邻水| 泰州市| 朔州市| 东至县| 张北县| 绥棱县| 琼海市| 岳阳县| 汉中市| 时尚| 嘉义县| 孝义市| 迁西县| 古交市| 右玉县| 长宁区| 临朐县| 荃湾区| 玉门市| 麻栗坡县| 天柱县| 阜新| 安龙县| 汕尾市| 寻乌县| 贵州省| 潜山县| 紫金县| 铁力市|