成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java的call by value和call by reference

NickZhou / 2551人閱讀

摘要:筆試題的和題目如下傳參的兩種方式值傳遞傳遞的是值針對基本數(shù)據(jù)類型,如傳遞一個(gè)整型數(shù)值。實(shí)際上,按值傳遞在方法調(diào)用方法中,參數(shù)只是實(shí)際參數(shù)的一份拷貝。引用傳遞傳遞的是對象的引用針對對象,即傳遞的是對象的地址。

【筆試題】 Java的call by value和call by reference 題目如下:

Java傳參的兩種方式

call by value(值傳遞):傳遞的是值(針對基本數(shù)據(jù)類型),如傳遞一個(gè)整型數(shù)值。實(shí)際上,按值傳遞在方法調(diào)用方法中,參數(shù)只是實(shí)際參數(shù)的一份拷貝。

call by reference(引用傳遞):傳遞的是對象的引用(針對對象),即傳遞的是對象的地址。實(shí)際上,引用按傳遞時(shí)候會產(chǎn)生一份新的引用拷貝,新舊兩份引用同時(shí)指向同一個(gè)地址。

代碼示例
public class TestJavaCallBy {

    // 測試值傳遞
    public static void testCallByValue(int value) {
        value *= 10;
    }

    // 測試引用傳遞
    public static void testCallByReference(StringBuilder sb) {
        sb.append(" - " + ZonedDateTime.now());
    }

    public static void main(String[] args) {

        // 測試值變量
        int param = 1;
        // 測試引用對象
        StringBuilder sb = new StringBuilder("666");

        // 測試
        System.out.println(param);
        testCallByValue(param);
        System.out.println(param);

        System.out.println(sb.toString());
        testCallByReference(sb);
        System.out.println(sb.toString());
    }
}

控制臺輸出結(jié)果
1
// 結(jié)果仍為1,因?yàn)閰?shù)傳遞的是實(shí)參的一份拷貝,對實(shí)參不造成影響
1 

666
// 傳遞的是引用的拷貝,新舊兩個(gè)引用指向同一個(gè)對象(地址),因此append操作是作用在該對象上
666 - 2019-03-16T01:25:57.933038500+08:00[Asia/Shanghai] 
那么就能得出一下結(jié)論:

call by value不會改變實(shí)參的值

call by reference不能改變實(shí)參的參考地址

call by reference能改變實(shí)參的內(nèi)容

那么這道題的答案就是這樣。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/73719.html

相關(guān)文章

  • call by sharing——JavaScript中“共享傳參”“按值傳參”理解

    摘要:眾所周知,中參數(shù)是按值傳遞的。先大概介紹按值傳參基本類型基本類型的參數(shù)傳遞比較簡單,示例代碼的值復(fù)制給了函數(shù)內(nèi)部的局部變量所以在函數(shù)內(nèi)部改變的值并不會影響外部的值。 眾所周知,JavaScript中參數(shù)是按值傳遞的。與訪問變量不同,基本類型和引用類型的參數(shù)在傳遞時(shí)都如同變量的復(fù)制。 但是我們在使用引用類型的參數(shù)傳遞時(shí),經(jīng)常會發(fā)現(xiàn)在函數(shù)內(nèi)改變引用類型參數(shù)(如對象)會在函數(shù)外反映出來,這種...

    jsdt 評論0 收藏0
  • Learning Notes - Understanding the Weird Parts of

    摘要:標(biāo)簽前端作者更多文章個(gè)人網(wǎng)站 Learning Notes - Understanding the Weird Parts of JavaScript 標(biāo)簽 : 前端 JavaScript [TOC] The learning notes of the MOOC JavaScript: Understanding the Weird Parts on Udemy,including...

    inapt 評論0 收藏0
  • JS中值是按值傳遞,還是按引用傳遞呢?

    摘要:按引用傳遞時(shí),函數(shù)的形參接收實(shí)參的隱式引用,而不再是副本。探究值的傳遞方式的基本類型,是按值傳遞的。但這樣是否說明的對象是按引用傳遞的呢我們再看下面的例子仍然是并未被修改為如果是按引用傳遞,修改形參的值,應(yīng)該影響到實(shí)參才對。 最近遇到個(gè)有趣的問題:JS中的值是按值傳遞,還是按引用傳遞呢? 在分析這個(gè)問題之前,我們需了解什么是按值傳遞(call by value),什么是按引用傳遞(ca...

    Jochen 評論0 收藏0
  • 談?wù)?em>java中幾種常見散列算法及解決哈希碰撞方式

    摘要:接下來分析幾個(gè)常見的實(shí)現(xiàn)方式。再哈希法再哈希法,就是出現(xiàn)沖突后采用其他的哈希函數(shù)計(jì)算,直到不再沖突為止。,其中為不同的哈希函數(shù)。 由表及里,循序漸進(jìn),請往下看。隨手點(diǎn)贊是對作者最大的鼓勵(lì)!^0^。 什么是哈希表 引用:嚴(yán)蔚敏 《數(shù)據(jù)結(jié)構(gòu)(C語言版)》中的內(nèi)容 showImg(https://segmentfault.com/img/bVZlmE?w=800&h=364); 哈希表就是 ...

    沈建明 評論0 收藏0
  • 并發(fā)學(xué)習(xí)筆記(1)

    摘要:共享數(shù)據(jù)使線程之間的通信比進(jìn)程之間的通信更有效。并發(fā)模型和的區(qū)別說明的作用是啟動一個(gè)新線程操作系統(tǒng)級別,有一個(gè)方法啟動新線程,新線程會執(zhí)行相應(yīng)的方法。單獨(dú)調(diào)用會在當(dāng)前線程中執(zhí)行并不會啟動新線程創(chuàng)建一個(gè)線程即可但是這個(gè)線程沒有執(zhí)行任何代碼段。 tutorials site 并發(fā)Concurrency發(fā)展的歷史 單CPU,一次只能運(yùn)行一個(gè)程序 -- 多任務(wù),一次同時(shí)運(yùn)行多個(gè)任...

    objc94 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<