String类为什么是final的?

  1. 源码对String 为什么设计成final 的解释
    字符串是恒定的,创建之后,不能被改变
  2. 什么叫做不可变?
    就是这个值一旦被常量池创建,是无法修改的,即使你再后面拼接了其他字符串,他也会将会指向新的地址
  3. 字符串的存储位置?
    字符串的存储位置是在常量池中,常量池中的数据可以被共享,因此会导致很多地方都在操作这个对象, 如果可变的话,将会出现线程安全问题,因此基于线程安全也会将String 设计成final
    4.String 设计成final 的好处?
    (1) 线程安全的
    (2) 支持字符串常量共享,节省资源,提高效率(常量存在,直接拿来用,不用在创建)

猜你喜欢

转载自blog.csdn.net/weixin_42118323/article/details/88342779
今日推荐