国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java的call by value和call by reference

NickZhou / 2541人閱讀

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

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

Java傳參的兩種方式

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

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

代碼示例
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());
    }
}

控制臺輸出結果
1
// 結果仍為1,因為參數傳遞的是實參的一份拷貝,對實參不造成影響
1 

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

call by value不會改變實參的值

call by reference不能改變實參的參考地址

call by reference能改變實參的內容

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/73719.html

相關文章

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

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

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

    摘要:標簽前端作者更多文章個人網站 Learning Notes - Understanding the Weird Parts of JavaScript 標簽 : 前端 JavaScript [TOC] The learning notes of the MOOC JavaScript: Understanding the Weird Parts on Udemy,including...

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

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

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

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

    沈建明 評論0 收藏0
  • 并發學習筆記(1)

    摘要:共享數據使線程之間的通信比進程之間的通信更有效。并發模型和的區別說明的作用是啟動一個新線程操作系統級別,有一個方法啟動新線程,新線程會執行相應的方法。單獨調用會在當前線程中執行并不會啟動新線程創建一個線程即可但是這個線程沒有執行任何代碼段。 tutorials site 并發Concurrency發展的歷史 單CPU,一次只能運行一個程序 -- 多任務,一次同時運行多個任...

    objc94 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<