Rag*_*ghu 48 java string mutable stringbuffer immutability
据我所知,
可以更改可变字符串,并且不能更改不可变字符串.
在这里,我想像这样更改String的值,
String str="Good";
str=str+" Morning";
Run Code Online (Sandbox Code Playgroud)
和其他方式是,
StringBuffer str= new StringBuffer("Good");
str.append(" Morning");
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,我试图改变其价值str.任何人都可以告诉我,这两种情况有什么不同,并给我清晰的可变和不可变对象的图片.
The*_*ind 89
String str = "Good";
str = str + " Morning";
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,您将创建3个String对象.
注意:字符串总是不可变的.没有,像一个可变的字符串.str只是一个参考,最终指向"早安".实际上,你不是在研究1对象.你有3不同的String对象.
StringBuffer str = new StringBuffer("Good");
str.append(" Morning");
Run Code Online (Sandbox Code Playgroud)
StringBuffer包含一个字符数组.这是不一样的String.上面的代码将字符添加到现有数组中.实际上,它StringBuffer是可变的,它的String表示不是.
Phi*_*der 13
java中的可变和不可变String之间有什么区别
不可变的存在,可变的不存在.
在Java中,所有字符串都是不可变的.当您尝试修改a时String,您真正在做的是创建一个新的.但是,当您使用a时StringBuilder,实际上是在修改内容,而不是创建新内容.
Java String是不可变的.
在你的第一个例子,你改变了参考的String,从而赋予它的其他两个值Strings组合:str + " Morning".
相反,a StringBuilder或StringBuffer可以通过其方法进行修改.
| 归档时间: |
|
| 查看次数: |
119004 次 |
| 最近记录: |