Once you have assigned String a value, that value can never change— it's immutable.
The good news is that while the String object is immutable, its reference variable is
not, so to continue with your code:
1) The VM takes the value of description , replaces the , with " " gives us a new value.
2) Again it takes the new string description , replaces the . with " " gives us another new value.
Since Strings are immutable, the VM couldn't stuff this new value into the old String referenced
by description, so it created a new String object, gave it the new value and made description refer to it.
At this point we will have 3 objects,
First one - We created
Second one - , replaced with " "
Third one- . replaced with " "
description