Java 傳參數時,傳值和傳引用的區別

來源:互聯網
上載者:User

標籤:java   中北大學   木質的旋律   傳值   傳引用   

轉載請註明出處,原文地址: http://blog.csdn.net/h28496/article/details/44732713

中北大學 鄭海鵬 


最近在複習那九大排序演算法時,意外的發現用冒泡排序、插入排序、選擇排序等in-place sort時,

sort(a);
再把a輸出,就是已經排好序的新數組了。

但是用歸併排序等out-place sort時,sort(a); 之後,輸出的還是原來的數組!

為什麼呢?請看代碼和裡面的注釋:


package zhp.outplace_sort;import zhp.Tools;public class Test {public static void main(String[] args) {int[] a1 = {1, 2, 3, 4, 5};int[] a2 = {1, 2, 3, 4, 5};f1(a1);f2(a2);Tools.print(a1); // 輸出數組Tools.print(a2);}/** * 方法內改變參數的值(在原記憶體單元操作),方法結束後參數值是改變後的。 */public static void f1(int[] a){for(int i = 0; i < a.length; i++){a[i]++;}}/** * 方法內將參數指向一個新的地址後,方法結束後參數還是會指向原來的地址。 */public static void f2(int[] a){a = new int[]{2, 3, 4, 5, 6};}}

輸出:

2 3 4 5 6 
1 2 3 4 5 


明白了吧~



Java 傳參數時,傳值和傳引用的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.