String 类简单解析

String 类简单解析

  1. 为什么String不可变

    public final class String
    implements java.io.Serializable, Comparable, CharSequence {
    /** The value is used for character storage. */
    private final char value[];

    String不可变不只是因为他是final 这只能说明value数组的引用地址不可变,但是value的内容仍然可变,但是value数组是private的, 外部无法访问,所以他是不可变的。

    String可以保证安全性,在函数传参数时,因为是引用,所以如果传String不会改变原始值,在hashMap中使用String作为key也可以保证安全 保证key不可变,若使用StringBuilder 则可能出现修改了key值是的出现两个相同的key

  2. String StringBuffer StringBuilder

    StringBuffer是线程安全的 String不可变所以每次增加都是创建一个新的对象,内存消耗比较大,StringBuilder在单线程 里面对于修改内容的字符串使用较好,多线程应该使用StringBuffer

阅读更多
个人分类: 概念
上一篇ReentrantReadWriteLock源码分析
下一篇CORS跨域
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭