z000302
2021-11-22 14:20
采纳率: 75%
浏览 43
已结题

关于String 字符串不可变的一个疑惑

最近在复习B站韩老师的0基础java视频在复习到String字符串这里的时候看到笔记上记了这么一句话:
String 有属性 private final char value[]; 用于存放字符串内容,并且是final修饰的,说明他的值在赋值之后就不可以修改了.
即 value 不能指向 新的地址,但是单个字符内容是可以变化

关于这句话的后半部分理解不是很清楚
既然value字符串数组都已经被final修饰了那就说明我们无法修改value指向的字符串数组的地址值,如果按照他说的对value指向的地址值对应的数组进行操作,那我们也是接触不到这个真正的字符串数组的啊 用什么方法去修改字符串数组中的某个值呢? 使用反射暴破?
如果可以反射爆破不就和String不可变这个概念冲突了吗?
如果不能修改,为什么又要说 value 不能指向 新的地址,但是单个字符内容是可以变化 这句话呢 ?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

相关推荐 更多相似问题