String 不可變性

這段代碼說明了,各類操做String對象的代碼都是複製了一個String的引用,而原來的String還在原地,沒變java

package strings;

//: strings/Immutable.java
import static net.mindview.util.Print.*;

public class Immutable {
    public static String upcase(String s) {
        return s.toUpperCase();
    }

    public static void main(String[] args) {
        String q = "howdy";
        print(q); // howdy
        String qq = upcase(q);
        print(qq); // HOWDY
        print(q); // howdy
    }
}

/*
 * Output: howdy HOWDY howdy
 */// :~

 

咱們能夠經過eclipse調試這段代碼來驗證這一觀點eclipse

☆☆☆
eclipse 中對變量調試的時候後面跟着一個id 若是id相同,則這兩個引用指向的是同一個對象
咱們能夠試一下 代碼中第一個q 和最後一個 q id是同樣的。spa


能夠看到這兩個指向的是同一個對象,內存地址不變,值也不變。調試

相關文章
相關標籤/搜索