Tag: 不变性

使用reflection更改字符串的效果

众所周知,String在java中是不可变的。 但是,可以通过获取Field并设置访问级别来使用reflection来更改它。 (我知道这是未经修改的,我不打算这样做,这个问题纯粹是理论上的)。 我的问题:假设我知道我在做什么(并根据需要修改所有字段),程序是否会正常运行? 或者jvm是否进行了一些依赖于String不可变的优化? 我会遭受性能损失吗? 如果是这样,它会做出什么假设? 该计划会出现什么问题 ps String只是一个例子,除了示例之外,我实际上对一般答案感兴趣。 谢谢!