为什么整数在Java中是不可变的?
2022-09-04 06:15:06
我知道整数在Java中是不可变的。但是为什么它是这样设计的呢?
在问这个问题之前,我浏览了其他答案:
但是我找不到要求整数不可变的用例。是否有任何像String这样的技术原因?
- 字符串用作网络连接、数据库 URL 等中的参数。如果它是可变的,它很容易受到损害。
- 支持字符串池工具。
- 支持将字符串用作参数的类装入机制。字符串可变会导致加载错误的类。
我知道有像可变的包装器。AtomicInteger
更新:
从对话中可以看出,没有普遍的理由可以强制整数是不可变的。但是,通过执行不可变操作,它提供了答案中提到的一些奖励。
比如安德烈的这句话
可以缓存。
其他人正在减少全局状态
更易于多线程处理