As per my knowledge,
a mutable string can be changed, and an immutable string cannot be changed.
Here I want to change the value of String like this,
String str="Good"; str=str+" Morning";
and other way is,
StringBuffer str= new StringBuffer("Good"); str.append(" Morning");
In both the cases I am trying to alter the value of str
. Can anyone tell me, what is difference in both case and give me clear picture of mutable and immutable objects.
String str = "Good"; str = str + " Morning";
In the above code you create 3 String
Objects.
Note: Strings are always immutable. There is no, such thing as a mutable String. str
is just a reference which eventually points to "Good Morning". You are actually, not working on 1
object. you have 3
distinct String
Objects.
StringBuffer str = new StringBuffer("Good"); str.append(" Morning");
StringBuffer
contains an array of characters. It is not same as a String
. The above code adds characters to the existing array. Effectively, StringBuffer
is mutable, its String
representation isn't.
What is difference between mutable and immutable String in java
immutable exist, mutable don't.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With