在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java/ java引用的一個問題?

java引用的一個問題?


    private static void printABC(Node head) {
        Node cur = head;
        while(cur != null){
            cur = cur.next;
        }
        cur = head;
        
    }

這段代碼cur指向head之后用進(jìn)行了遍歷,兩個是一個引用不應(yīng)該head也是在同時遍歷的么?為何最后還能夠cur指回初始?

回答
編輯回答
不舍棄

Java 里全部都是值傳遞,沒有引用傳遞。
但是有引用這個說法,而這個引用實際上指的是:變量存儲的值是某個非基本數(shù)據(jù)類型的 引用關(guān)系。
這個說法有點繞,按題目中所說的 cur,實質(zhì)上只在

Node cur = head;

這里存的是 變量head所存儲的 某個對象的引用關(guān)系
在這里,cur、head指的是同個對象,進(jìn)入循環(huán)之后則不然,

cur = cur.next;

這里是把 cur 儲存的值改成了 cur.next所存儲的 某個對象的引用關(guān)系。

也就是說,在 Java 中,非基礎(chǔ)數(shù)據(jù)類型的變量,存儲的 都是一個 引用關(guān)系 ,變量可以與這個 引用關(guān)系 解除綁定,比如 cur = null,也可以解除后重新綁定一個新的 引用關(guān)系 cur = cur.next。

Java引用 這個術(shù)語其實不是 C/C++ 世界的那種理解。

2018年8月27日 02:20