這段代碼說明了,各類操做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
能夠看到這兩個指向的是同一個對象,內存地址不變,值也不變。調試