
let me ask:
s1 changed because x1 used a method? (x1 still use same reference of s1 because x1 changed by a method not by assignment operator)?
s2 does not changed because x2 use "=" operator? (x2 point to another reference in memory immediately after it use "=" operator.) so x2 does not change the s2 reference?