美文网首页
Java中对String为什么设计成不可变的

Java中对String为什么设计成不可变的

作者: 这个美嘉不姓陈 | 来源:发表于2018-04-28 09:00 被阅读0次

    Sting的几个概念:
    1.String类是final类,不能被继承,并且它的成员方法默认为fianl方法
    2.String类其实是通过char数组来保存的
    3.String对象一旦被创建就不可改变,相关的任何change操作都会生成一个新的对象
    4.使用String不一定会创建新的对象
    5.使用 new String 一定会创建对象

    String为什么不可变:
    1.常量池思想:字符串常量池的需要,若允许改变,那么将会引起各种逻辑错误,例如 String s1 = "abcd"; String s2 = "abcd"; s1,s2都指向常量池中的同一个字符串,如果改变s1那么s2的逻辑也会跟着改变

    2.HashCode:允许String对象缓存HashCode,字符串的不变性保证了HashCode的唯一性,可以放心缓存

    3.安全性:String被许多的库(类)用作参数,例如网络连接URL,文件路径等

    相关文章

      网友评论

          本文标题:Java中对String为什么设计成不可变的

          本文链接:https://www.haomeiwen.com/subject/byqblftx.html