str1 is a reference. When you reassign it, you're not changing other references to that same valuestr2 is ("string 2"), so it never changesstr1 is pointing to str2str2 is changed to "BLAHH"str1str2 = "BLAHH" isn't changing the value of the string str2 references, it's changing the reference to an entirely new string. so the contents of the string that str1 references never changesstr1 is pointing to the same string that str2 is pointing to. Then, you reassign str2 to point to a new string. That doesn't affect what str1 is pointing to/close