我同意String对象是不可变的这一事实,意味着它们不能被修改.就像下面的情况一样
String str = "Hi";
String str1 = str.concat("Nilesh");
Run Code Online (Sandbox Code Playgroud)
如果length参数为0或者将创建一个新的String对象并返回其引用,则返回str对象.如果我这样做
String str = "Hi";
str="Hello";
Run Code Online (Sandbox Code Playgroud)
它是如何变化的?不可变的地方在哪里?请举个例子.
不可变的是String本身,而不是指向String的引用.在你的第二个代码中:
String str = "hi";
str = "hello";
Run Code Online (Sandbox Code Playgroud)
涉及2个String对象:"hi"和"hello".
str是一个最初指向第一个的引用然后指向赋值后的第二个引用.但是String对象"hi"不会在该代码中被修改.
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |