0
How String in java is immutable?
Suppose the followin piece of code: String s = "Abhi"; s = "Dimri"; we can do this java but according to this String is mutable but it is said that String is immutable.
3 Respostas
+ 3
s = "Dimri"; didn't change the string, but allocate a new string and assign it to s.
Therefore if your program needs to change lots of strings, you should use StringBuilder or StringBuffer.
+ 1
Immutable in the sense you can't do any operations on that... For ex, s="Abhi"
You can't do s[0]='k' since string is immutable..
You can't perform any string operations.. Hope you understood
+ 1
String is immutable, it means that the class is final so you cannot extend it. Now that been said, a string is made immutable because you might create multiple references to a single value and modification in one will modify all and it could be disastrous.
In your case you have simply created 2 different strings in the String Constant Pool. The variable 's' initially refers to "Abhi" but in the next line you are creating a new string and using 's' to refer to that.
Now 's' points to "Dimri" which means that String "Abhi" is lost now, never to be recovered and could only be destroyed during garbage collection.