Что означает "примитивные значения не разделяют состояние с другими примитивными значениями"?

Раздел 4.2 Спецификации языка Java гласит: "Примитивные значения не разделяют состояние с другими примитивными значениями". Что именно это означает?

Ответ 1

Я подозреваю, что он проводит различие между примитивами и ссылочными типами - где в последнем случае два значения (ссылки) могут ссылаться на один и тот же объект. Если у вас есть две примитивные переменные, вы ничего не можете сделать с тем, что повлияет на другое.

Это не очень ясно сформулировано, хотя, даже с ссылочными типами сами ценности (ссылки) не разделяют состояние; в частности, изменение значения одной переменной ссылочного типа не изменяет значение другой переменной... это состояние самого объекта, которое является разновидностью общих "сквозных" переменных с тем же значением.

Ответ 2

Это означает, что каждое значение примитивного типа занимает свое собственное пространство в памяти, представляя состояние, которое нельзя разделить с другими значениями. Другими словами, вы не можете изменять состояние переменной или поле примитивного типа любым способом, кроме как назначать его, напрямую или через сложный оператор присваивания.

Это отличается от ссылочных типов, которые могут или не могут делить состояние, "указывая" на один и тот же объект. Вы можете изменить ссылочный объект, манипулируя им с помощью другой переменной.