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

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

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试

关闭