您现在的位置: 主页 > 上位机技术 > JAVA > 在java中string为什么要设计成final的?
本文所属标签:
为本文创立个标签吧:

在java中string为什么要设计成final的?

来源:网络整理 网络用户发布,如有版权联系网管删除 2018-08-19 

String基本约定中最重要的一条是immutable。

的确声明String为final 和immutable是没有必然关系,但是假如String没有声明为final, 那么你的StringChilld就有可能是被复写为mutable的,这样就打破了成为共识的基本约定。

举个例子:一个方法可能本来接受String类型并返回其大写方式

public static String uppperString(String s){
        return s.toUpperCase();
}

你传入String 的s="test", 他不会修改字符串池中"test", 而是直接新建立一个实例"TEST"返回。但如果你的StringChild的toUpperCase()被你重写(override)为mutable的方式,然后你调用这个方法的时候传入的是StringChild实例, 那么整体(依赖于(过)方法uppperString的所有类)的行为就有可能出现错乱。

要知道,String是几乎每个类都会使用的类,特别是作为Hashmap之类的集合的key值时候,mutable的String有非常大的风险。而且一旦发生,非常难发现。

声明String为final一劳永逸。


传送门:
Why String is Immutable or Final in Java
Why is String class declared final in Java?

              查看评论 回复



嵌入式交流网主页 > 上位机技术 > JAVA > 在java中string为什么要设计成final的?
 一个 方法 声明

"在java中string为什么要设计成final的?"的相关文章

网站地图

围观()