In one form or another I encounter the following question often (posed, here, in pseudo-code): 

```
String myString = "Hello"
someObject.stringProperty = myString
myString = "World"

```

> 
> Why doesn't someObject.stringProperty now equal "World"?
> 
> 
> 

There seems to be confusion about the role the following statement plays in the explanation of why this is the case: 

> 
> Strings are Immutable
> 
> 
> 

What do you think?

If you think the statement doesn't apply, I'd ask you this: In a language where strings *were* mutable, and the assignment operator mutated their actual value (instead of simply changing the reference), would your answer still make sense?

**EDIT:**

OK, I feel the need to clarify some things: 

1. I'm not confused about how strings, references, or assignments work. I'm perfectly clear on this topic. I'm not asking how strings work. I'm asking "What role does string immutability play in the explaination of string references to developers". We can skip the Ad-Hominem attacks that I must be confused.
2. I'm looking for a logically rigorous answer for the developer asking the cited question which doesn't contain, or pre-suppose, the immutability of strings.

A categorization of the existing arguments: 

1. `String Immutability has nothing to do with it because the references are changing, not the values of the strings` This answer pre-supposes the exact fact I'm asking about.
2. `Assignment means assignment of references not assignment of values` Again, this pre-supposes the exact fact I'm asking about. There is no reason this *must* be the case for strings. It simply *is* the case for strings for performance and other reasons.