我只听说Java中的字符串不能是不可变的,我想知道除了字符串之外还有其他对象也是不可变的吗?
附带说明一下,C++ 中的字符串也是不可变的吗?
我只听说Java中的字符串不能是不可变的,我想知道除了字符串之外还有其他对象也是不可变的吗?
附带说明一下,C++ 中的字符串也是不可变的吗?
许多原始类型是不可变的(Integer、Long、Boolean 等)。不变性不是在 java 中明确指出的东西,它实际上是一种语义契约。您可以通过将其成员声明为 final、在构造时分配它们并通过类的公共接口锁定访问来使任何类不可变。
C++ 中的字符串是以零字符结尾的字符数组。而已。尽管使用 const 可以帮助锁定访问权限,但这并没有保证不变性。
我想重点是 Java 中的许多东西都是不可变的,但只有文档和源代码才能真正向您证明这一点。
所有装箱的基元,例如 Integer,都是不可变的。
您可以自己创建不可变类 - 例如,使用其构造函数设置其变量的类,并且没有公共变量或设置器。