"原始值不与其他原始值共享状态"是什么意思?

Rya*_*yan 12 java

Java语言规范的4.2节规定,"原始值不与其他原始值共享状态".这到底是什么意思?

das*_*ght 7

这意味着基本类型的每个值在内存中占据其自己的空间,表示不能与其他值共享的状态.换句话说,除了直接或通过复合赋值运算符分配变量或基本类型的字段之外,不能以任何方式更改变量的状态.

这与参考类型形成对比,参考类型可以通过"指向"同一对象来共享或不共享状态.您可以通过另一个变量操作来更改参考对象.


Jon*_*eet 6

我怀疑它正在区分基元和引用类型 - 在后一种情况下,两个值(引用)都可以引用同一个对象.如果你有两个原始变量,那么你无法做任何会影响另一个变量的变量.

但是,它的措辞并不是非常明显,因为即使使用引用类型,值本身(引用)也不共享状态; 特别是,更改一个引用类型变量的值不会更改另一个变量的值...它是对象本身的状态,它是具有相同值的共享"via"变量.