91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java的call by value和call by reference有什么區別

發布時間:2021-08-26 15:27:39 來源:億速云 閱讀:142 作者:chen 欄目:編程語言

這篇文章主要講解了“Java的call by value和call by reference有什么區別”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“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能改變實參的內容

感謝各位的閱讀,以上就是“Java的call by value和call by reference有什么區別”的內容了,經過本文的學習后,相信大家對Java的call by value和call by reference有什么區別這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安徽省| 上蔡县| 大石桥市| 通许县| 蓬莱市| 彭州市| 启东市| 上高县| 张北县| 陵川县| 皮山县| 和顺县| 抚顺市| 视频| 咸宁市| 汶川县| 宜春市| 保德县| 林州市| 高碑店市| 平定县| 南部县| 四平市| 泗水县| 台中市| 喀喇沁旗| 奎屯市| 太白县| 喀喇| 沈阳市| 富锦市| 虹口区| 巴林左旗| 页游| 琼海市| 宁阳县| 锦州市| 昆明市| 荥阳市| 邢台市| 始兴县|