В Java строки неизменяемы. Если у нас есть строка и внести в нее изменения, мы получим новую строку, на которую ссылается одна и та же переменная:
String str = "abc";
str += "def"; // now str refers to another piece in the heap containing "abcdef"
// while "abc" is still somewhere in the heap until taken by GC
Было сказано, что int и double неизменны в С#. Означает ли это, что, когда у нас есть int, а затем изменит его, мы получим новую int "point" той же переменной? То же самое, но со стеком.
int i = 1;
i += 1; // same thing: in the stack there is value 2 to which variable
// i is attached, and somewhere in the stack there is value 1
Это правильно? Если нет, то каким образом int неизменен?