欧美日韩调教_欧美精品啪啪_欧美精品97_国产女主播一区二区_欧美精品播放_亚洲精品乱码久久久久久蜜桃91_中文欧美日韩_夜夜爽www精品_国产亚洲亚洲_国产欧美日韩亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Java的參數(shù)傳遞到底是值傳遞還是引用傳遞?

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞?

來源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-07-11 16:58:00 1657529880

  1. 值傳遞

  當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?

  這是值傳遞!Java 語言的方法調(diào)用只支持參數(shù)的值傳遞。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。對(duì)象的屬性可以在被調(diào)用過程中被改變,但對(duì)對(duì)象引用的改變是不會(huì)影響到調(diào)用者的。

  2. 為什么 Java 中只有值傳遞?

  首先回顧一下在程序設(shè)計(jì)語言中有關(guān)將參數(shù)傳遞給方法(或函數(shù))的一些專業(yè)術(shù)語。按值調(diào)用(call by value)表示方法接收的是調(diào)用者提供的值,而按引用調(diào)用(call by reference)表示方法接收的是調(diào)用者提供的變量地址。一個(gè)方法可以修改傳遞引用所對(duì)應(yīng)的變量值,而不能修改傳遞值調(diào)用所對(duì)應(yīng)的變量值。 它用來描述各種程序設(shè)計(jì)語言(不只是Java)中方法參數(shù)傳遞方式。

  Java程序設(shè)計(jì)語言總是采用按值調(diào)用。也就是說,方法得到的是所有參數(shù)值的一個(gè)拷貝,也就是說,方法不能修改傳遞給它的任何參數(shù)變量的內(nèi)容。

  下面通過 3 個(gè)例子來給大家說明

  2.1 案例01

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞1

  結(jié)果:

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞2

  解析:

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞3

  在swap方法中,a、b的值進(jìn)行交換,并不會(huì)影響到 num1、num2。因?yàn)椋琣、b中的值,只是從 num1、num2 的復(fù)制過來的。也就是說,a、b相當(dāng)于num1、num2 的副本,副本的內(nèi)容無論怎么修改,都不會(huì)影響到原件本身。

  通過上面例子,我們已經(jīng)知道了一個(gè)方法不能修改一個(gè)基本數(shù)據(jù)類型的參數(shù),而對(duì)象引用作為參數(shù)就不一樣,請(qǐng)看 example2.

  2.2 案例02

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞4

  結(jié)果:

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞5

  解析:

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞6

  array 被初始化 arr 的拷貝也就是一個(gè)對(duì)象的引用,也就是說 array 和 arr 指向的時(shí)同一個(gè)數(shù)組對(duì)象。 因此,外部對(duì)引用對(duì)象的改變會(huì)反映到所對(duì)應(yīng)的對(duì)象上。

  通過 example2 我們已經(jīng)看到,實(shí)現(xiàn)一個(gè)改變對(duì)象參數(shù)狀態(tài)的方法并不是一件難事。理由很簡(jiǎn)單,方法得到的是對(duì)象引用的拷貝,對(duì)象引用及其他的拷貝同時(shí)引用同一個(gè)對(duì)象。

  很多程序設(shè)計(jì)語言(特別是,C++和Pascal)提供了兩種參數(shù)傳遞的方式:值調(diào)用和引用調(diào)用。有些程序員(甚至本書的作者)認(rèn)為Java程序設(shè)計(jì)語言對(duì)對(duì)象采用的是引用調(diào)用,實(shí)際上,這種理解是不對(duì)的。由于這種誤解具有一定的普遍性,所以下面給出一個(gè)反例來詳細(xì)地闡述一下這個(gè)問題。

  2.3 案例03

  public class Test { public static void main(String[] args) { // TODO Auto-generated method stub Student s1 = new Student("小張"); Student s2 = new Student("小李"); Test.swap(s1, s2); System.out.println("s1:" + s1.getName()); System.out.println("s2:" + s2.getName()); } public static void swap(Student x, Student y) { Student temp = x; x = y; y = temp; System.out.println("x:" + x.getName()); System.out.println("y:" + y.getName()); } }

  結(jié)果:

  x:小李

  y:小張

  s1:小張

  s2:小李

  解析:

  交換之前:

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞7

  交換之后:

Java的參數(shù)傳遞到底是值傳遞還是引用傳遞8

  通過上面兩張圖可以很清晰的看出: 方法并沒有改變存儲(chǔ)在變量 s1 和 s2 中的對(duì)象引用。swap方法的參數(shù)x和y被初始化為兩個(gè)對(duì)象引用的拷貝,這個(gè)方法交換的是這兩個(gè)拷貝

  3. 總結(jié)

  Java程序設(shè)計(jì)語言對(duì)對(duì)象采用的不是引用調(diào)用,實(shí)際上,對(duì)象引用是按值傳遞的。

  3.1 下面再總結(jié)一下Java中方法參數(shù)的使用情況

  1一個(gè)方法不能修改一個(gè)基本數(shù)據(jù)類型的參數(shù)(即數(shù)值型或布爾型);

  2一個(gè)方法可以改變一個(gè)對(duì)象參數(shù)的狀態(tài);

  3一個(gè)方法不能讓對(duì)象參數(shù)引用一個(gè)新的對(duì)象。

  3.2 值傳遞和引用傳遞有什么區(qū)別

  1值傳遞:指的是在方法調(diào)用時(shí),傳遞的參數(shù)是按值的拷貝傳遞,傳遞的是值的拷貝,也就是說傳遞后就互不相關(guān)了。

  2引用傳遞:指的是在方法調(diào)用時(shí),傳遞的參數(shù)是按引用進(jìn)行傳遞,其實(shí)傳遞的引用的地址,也就是變量所對(duì)應(yīng)的內(nèi)存空間的地址。傳遞的是值的引用,也就是說傳遞前和傳遞后都指向同一個(gè)引用(也就是同一個(gè)內(nèi)存空間)。

  更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開發(fā)平臺(tái),它為眾多硬件平臺(tái)和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡(jiǎn)化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動(dòng)備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59
服務(wù)器為什么要用Linux?

服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

2023-10-14 12:34:11
ORM解決的主要問題是什么?

ORM(對(duì)象關(guān)系映射)解決的主要問題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

2023-10-14 12:26:19
Go為什么不支持三元運(yùn)算符?

Go為什么不支持三元運(yùn)算符Go語言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語言,因此在設(shè)計(jì)過程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

2023-10-14 12:12:36
欧美日韩调教_欧美精品啪啪_欧美精品97_国产女主播一区二区_欧美精品播放_亚洲精品乱码久久久久久蜜桃91_中文欧美日韩_夜夜爽www精品_国产亚洲亚洲_国产欧美日韩亚洲
欧美成人官网二区| 欧美岛国在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 日本免费新一区视频| 激情综合网址| 日本一区二区久久| 伊人成人在线视频| 国产一区二区三区黄视频| 中文字幕在线一区| 制服丝袜中文字幕一区| 国产精品久久国产愉拍 | 欧美日本一区二区视频在线观看| 午夜久久久久久久久久一区二区| 日韩免费在线观看| 久久久久久婷| 91久久国产综合久久蜜月精品 | 日本精品裸体写真集在线观看| 麻豆精品一区二区| 午夜免费欧美电影| 一二三区精品视频| 国产精品传媒入口麻豆| 精品国产制服丝袜高跟| 欧美高清视频在线高清观看mv色露露十八| 国产精品日韩欧美一区二区三区| 欧美jjzz| 99精品国产一区二区三区不卡| 久久国产日韩欧美精品| 国产欧美日韩综合一区在线观看 | 黄色欧美成人| 成人av资源下载| 精品亚洲成av人在线观看| 亚洲一卡二卡三卡四卡五卡| 欧美国产精品中文字幕| 国产午夜精品一区二区三区四区| 久久久另类综合| 国产人伦精品一区二区| 久久久久国产精品厨房| 久久久精品国产免大香伊| 日韩欧美国产综合在线一区二区三区| 欧美精品123区| 欧美日韩一区小说| 国产精品久久久对白| 99精品福利视频| 国产精品午夜av在线| 久久精品卡一| 欧美日韩国产区一| 午夜精品久久久久久久蜜桃app| 99国产精品久久久久老师| 日韩精品电影一区亚洲| 欧美精品乱码久久久久久按摩| 成人中文字幕电影| 国产精品免费看片| 新67194成人永久网站| 国产呦精品一区二区三区网站| 久久综合久久综合亚洲| 欧美色欧美亚洲另类七区| 一卡二卡三卡日韩欧美| 精品1区2区3区| 日韩主播视频在线| 最新国产精品久久精品| 一区二区三区色| 天堂久久久久va久久久久| 国产精品综合一区二区三区| 波多野结衣精品在线| 91久久视频| 午夜精品久久久久久久久久久| 欧美日韩国产综合一区二区三区| 91免费看视频| 日韩中文字幕麻豆| 一区二区三区在线视频免费观看| 亚洲免费大片在线观看| 久久精品久久99精品久久| 成人va在线观看| 97久久人人超碰| 久久久成人网| 日韩精品一区二区三区老鸭窝| 国产精品久久夜| 蜜臀av性久久久久蜜臀aⅴ | 欧美亚州韩日在线看免费版国语版| 欧洲中文字幕精品| 久久综合色婷婷| 亚洲成人动漫在线观看| 国产一区在线观看视频| 欧美1级日本1级| 久久看片网站| 国产丝袜美腿一区二区三区| 亚洲国产成人va在线观看天堂| 经典三级在线一区| 亚洲国产日韩欧美一区二区三区| 欧美日韩的一区二区| 欧美三级韩国三级日本一级| 国产在线日韩欧美| 亚洲三级理论片| 在线播放日韩导航| 一区在线电影| 国产成人精品一区二区三区四区 | 男女性色大片免费观看一区二区| 国产白丝精品91爽爽久久| 亚洲开发第一视频在线播放| 欧美日韩免费在线视频| 日韩毛片在线免费观看| 成人午夜视频在线观看| 色综合久久久久综合99| 中文字幕在线不卡视频| 国产一区二区三区免费观看| 91久久国产综合久久蜜月精品| 欧美一区二区三区啪啪| 亚洲一二三四区| 欧美人与禽猛交乱配| 日韩视频一区二区三区| 香蕉av福利精品导航| 亚洲黄网站黄| 国产日韩欧美a| 国产aⅴ综合色| 欧美日韩在线一区二区| 青青国产91久久久久久| 国产精品社区| 亚洲美女区一区| 国产精品地址| 国产精品久久午夜夜伦鲁鲁| 成人国产亚洲欧美成人综合网 | 日韩av中文在线观看| 亚洲国产精品第一区二区三区| 精品国产免费人成电影在线观看四季 | 欧美日韩一级二级| 亚洲综合一区在线| 99热这里只有成人精品国产| 中文字幕在线一区| 欧美成人tv| 日韩欧美亚洲国产另类| 精品亚洲国产成人av制服丝袜| 色哟哟国产精品免费观看| 17c精品麻豆一区二区免费| 91影院在线免费观看| 精品福利一二区| 不卡免费追剧大全电视剧网站| 91精品国产综合久久香蕉麻豆| 亚洲aⅴ怡春院| 国产欧美午夜| 亚洲一区二区三区爽爽爽爽爽| 在线不卡亚洲| 亚洲色图一区二区| 制服诱惑一区二区| 亚洲高清中文字幕| 亚洲欧美日韩国产一区二区| 日韩国产在线一| 欧美乱妇15p| 国产在线国偷精品产拍免费yy| 欧美日韩中文字幕一区二区| 麻豆精品在线播放| 日韩一区二区影院| 高清av一区二区| 国产亚洲短视频| 激情综合视频| 亚洲亚洲人成综合网络| 91福利国产成人精品照片| 亚洲一区免费视频| 国产乱人伦精品一区二区| 亚洲最新在线观看| 日韩在线一区二区| 亚洲影院理伦片| 亚洲午夜精品网| 亚洲欧美精品午睡沙发| 中文字幕亚洲电影| 国产精品美女久久久久久| 国产欧美综合在线观看第十页| 欧美成人精品二区三区99精品| 欧美妇女性影城| 91精品欧美一区二区三区综合在| 欧美精品视频www在线观看| 欧美高清激情brazzers| 日韩一区二区三区视频在线观看| 91精品福利在线一区二区三区 | 久久国产一区| 老司机精品视频在线| 久久亚区不卡日本| 激情视频一区二区三区| 丝袜亚洲另类欧美| 国产一区二区三区久久久| 国产又黄又大久久| 国产不卡视频一区二区三区| 成人激情动漫在线观看| 欧美吻胸吃奶大尺度电影| 亚洲国产精品一区二区www在线| 91精品国产一区二区三区蜜臀| 黄色av成人| 高清不卡一二三区| 亚洲高清免费观看| 久久九九久精品国产免费直播| 亚洲欧洲av在线| 日韩欧美久久久| 一本一道久久a久久精品综合蜜臀| 麻豆极品一区二区三区| 欧美极品aⅴ影院| 欧美一区二区在线观看| 国产伦精品一区| 欧美连裤袜在线视频| 久久成人免费| 在线精品视频免费观看| 4hu四虎永久在线影院成人|