String为什么要设计为final的

为什么jdk中把String类设计成final? http://blog.csdn.net/fenglibing/article/details/5486449

【翻译】为什么Java中的String不可变 http://www.cnblogs.com/wavky/p/why-string-is-immutable-in-java.html

String的不可变特性设计就是出于效率和安全性的考虑

  1. 满足 String Pool (String intern pool) 字符串保留池的需要
  2. 缓存Hashcode的需要
  3. 安全性:String被广泛用于网络连接、文件IO等多种Java基础类的参数中,如果String内容可变的话,将潜在地带来多种严重安全隐患,例如链接地址被暗中更改等
  4. 不可变对象在物理上绝对性的线程安全

results matching ""

    No results matching ""