String 一旦賦值就不能重新賦值鸟蟹,因為重新賦值會再開辟一個空間存放新的值俊戳。string? 是fall修飾
String對象不可修改指的是對象本身不可修改乞娄,而不是引用不可修改。
String a = "你好";
這行代碼的意思是聲明一個String類型的引用變量叫做a哎媚,在內存中創(chuàng)建一個String對象(值為"你好")租漂,然后把這個對象的引用賦值給變量a阶女。
a = "hello";
這行代碼執(zhí)行的效果是在內存中另外創(chuàng)建了一個String對象(值為"hello"),然后把這個新對象的引用賦值給變量a哩治,而不是把原來的內存中的那個“你好”的String對象值變?yōu)椤癶ello”秃踩。如果之后內存中那個“你好”的String對象沒有任何引用,那么就會被下一次垃圾回收器運行時回收锚扎。
String和所有的基本類型包裝類的對象都是不變量吞瞪。內存中的不變量對象的值是不能被改變的。