最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA參數(shù)傳遞方式實(shí)例淺析【按值傳遞與引用傳遞區(qū)別】

 更新時(shí)間:2020年05月22日 09:16:17   作者:NO0b  
這篇文章主要介紹了JAVA參數(shù)傳遞方式,結(jié)合實(shí)例形式分析了java按值傳遞與引用傳遞區(qū)別及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了JAVA參數(shù)傳遞方式。分享給大家供大家參考,具體如下:

首先要明確的是JAVA中沒有引用傳遞, 全部是按值調(diào)用

令大家所費(fèi)解的 當(dāng)對象引用作為參數(shù)時(shí)  函數(shù)為什么能修改真實(shí)的對象呢?這不是引用傳遞的特征嗎?

尤其先學(xué)習(xí)C++再學(xué)習(xí)JAVA的同學(xué)(比如說我自己)會(huì)這樣認(rèn)為,

用白話解釋就是:

引用傳遞指針時(shí), 連函數(shù)操作的指針都是原來的指針,比如C++傳入對象時(shí)直接用傳入的指針操作

而JAVA的引用傳進(jìn)函數(shù)時(shí) , 會(huì)復(fù)制一個(gè)引用與實(shí)參指向同一對象的引用, 操作的不是同一個(gè)引用,

如果還不明白區(qū)別再換種方式解釋一次:

JAVA只有按值調(diào)用, 參數(shù)是什么都會(huì)復(fù)制一份再操作, 就算是對象的引用也會(huì)復(fù)制一份新的引用,只不過指向的是同一個(gè)對象

這種傳參方式叫做按值傳遞, 傳遞的東西可以是引用(類似C++的指針)

如果是引用傳遞像C++傳入指針不會(huì)再復(fù)制一份了,直接拿來用

如果再不明白也沒關(guān)系,看看下面的例子和解釋分析

舉個(gè)例子:

輸出結(jié)果:

也就說我們用一個(gè)函數(shù)修改了 傳入的一個(gè)int變量和一個(gè)對象內(nèi)容,

再輸出int變量和對象內(nèi)容時(shí)發(fā)現(xiàn) ,int的沒有改變,而 對象的內(nèi)容改變了

這說明什么呢,說明像 int ,double等基本數(shù)據(jù)類型在參數(shù)傳遞時(shí)并沒有傳進(jìn)變量本身,

而是創(chuàng)建了一個(gè)新的相同數(shù)值的變量, 函數(shù)修改這個(gè)新變量并沒有影響原來變量的數(shù)值,這也是按值傳遞的特點(diǎn)

那為什么對象a的數(shù)據(jù)就改變了呢?

因?yàn)殡m然也是按值傳遞, 復(fù)制了一份新的引用但是指向的對象是同一個(gè),修改后會(huì)影響原對象

這種方式假如在函數(shù)內(nèi)修改 a=null; 只是把復(fù)制的引用與對象的聯(lián)系斷開,不影響函數(shù)外與實(shí)際對象

這就是按值傳遞, 即使傳的是引用也不是引用傳遞,

因?yàn)?strong>引用傳遞是不復(fù)制的,直接使用參數(shù),如下圖:

這時(shí)候函數(shù)把指針a=null就指針就置空了,函數(shù)外也無法再通過指針訪問對象了

這樣可以理解了嗎,自我覺得足夠明白了, 我如此深厚的畫圖功底都供出來了,再不明白就是在為難我胖虎!

水平有限, 可能有錯(cuò)誤,敬請指出!

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java常用函數(shù)與方法技巧匯總》、《Java面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java并發(fā)編程之StampedLock鎖介紹

    Java并發(fā)編程之StampedLock鎖介紹

    這篇文章主要介紹了Java并發(fā)編程之StampedLock鎖,StampedLock是并發(fā)包里面JDK8版本新增的一個(gè)鎖,下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-04-04
  • 詳解Java中Math.round()的取整規(guī)則

    詳解Java中Math.round()的取整規(guī)則

    這篇文章主要介紹了詳解Java中Math.round()的取整規(guī)則,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Java詳解ScriptEngine接口動(dòng)態(tài)執(zhí)行JS腳本

    Java詳解ScriptEngine接口動(dòng)態(tài)執(zhí)行JS腳本

    ScriptEngine是基本接口,其方法必須在本規(guī)范的每個(gè)實(shí)現(xiàn)中完全起作用。這些方法提供基本腳本功能。 寫入這個(gè)簡單接口的應(yīng)用程序可以在每個(gè)實(shí)現(xiàn)中進(jìn)行最少的修改。 它包括執(zhí)行腳本的方法,以及設(shè)置和獲取值的方法
    2022-08-08
  • Java?easyExcel的復(fù)雜表頭多級(jí)表頭導(dǎo)入

    Java?easyExcel的復(fù)雜表頭多級(jí)表頭導(dǎo)入

    最近在項(xiàng)目開發(fā)中遇到的一個(gè)excel復(fù)雜表頭的導(dǎo)入數(shù)據(jù)庫操作,下面這篇文章主要給大家介紹了關(guān)于Java?easyExcel的復(fù)雜表頭多級(jí)表頭導(dǎo)入的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 項(xiàng)目管理利器-Maven(Windows安裝)圖文教程

    項(xiàng)目管理利器-Maven(Windows安裝)圖文教程

    下面小編就為大家?guī)硪黄?xiàng)目管理利器-Maven(Windows安裝)圖文教程。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Java實(shí)現(xiàn)遠(yuǎn)程控制技術(shù)完整源代碼分享

    Java實(shí)現(xiàn)遠(yuǎn)程控制技術(shù)完整源代碼分享

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)遠(yuǎn)程控制技術(shù)完整源代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 兩種實(shí)現(xiàn)Java類隔離加載的方法

    兩種實(shí)現(xiàn)Java類隔離加載的方法

    這篇文章主要介紹了兩種實(shí)現(xiàn)Java類隔離加載的方法,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下
    2021-02-02
  • java檢查數(shù)組是否有重復(fù)元素的方法

    java檢查數(shù)組是否有重復(fù)元素的方法

    這篇文章主要介紹了java檢查數(shù)組是否有重復(fù)元素的方法,涉及java針對數(shù)組元素的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法

    Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法

    本文主要介紹了Java中StringRedisTemplate和RedisTemplate的區(qū)別及使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Java Netty HTTP服務(wù)實(shí)現(xiàn)過程解析

    Java Netty HTTP服務(wù)實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Java Netty HTTP服務(wù)實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評(píng)論

鸡泽县| 长武县| 乐昌市| 开封县| 德江县| 吉木乃县| 成都市| 新田县| 舟曲县| 通道| 陇西县| 山西省| 合水县| 潞西市| 阳江市| 辽宁省| 柯坪县| 舒城县| 河津市| 平舆县| 宿州市| 通渭县| 靖宇县| 阳朔县| 平凉市| 永城市| 新源县| 绩溪县| 保山市| 敖汉旗| 仙桃市| 涪陵区| 仁寿县| 南投县| 基隆市| 房产| 涿州市| 庐江县| 邹城市| 云浮市| 弥渡县|