• StringStringBufferStringBuilder区别


    (1)String:
    String s="abc";
    如果像上面这样声明String变量,则现在jvm的方法区的运行时常量池中寻找是否存在"abc"这个字符串。
    如果有就使用已经存在的,如果没有,则在运行时常量池创建这个字符串。
    String s="abcd";
    String 字符串是不可更改的,接着执行上句代码,将创建"abcd";
    String s1=new String("abc");
    上述方式new创建的字符串,是在jvm内存的堆中创建的。另外String s3=s1+s2;这种也是在堆上创建的

    (2)StringBuffer:
    StringBuffer是线程安全的,因为它的方法都带有synchronized关键字。比如append方法:
    @Override
    public synchronized StringBuffer append(String str) {
    toStringCache = null;
    super.append(str);
    return this;
    }
    StringBuffer是可以更改的,所以StringBuffer适合多线程下字符串的大量操作时使用。

    (3)StringBuilder:
    StringBiulder是可以更改的,但不是线程安全的,适合单线程下字符串的大量操作时使用。

    执行速度:StringBuilder>StringBuffer>String
  • 相关阅读:
    实现centos系统的自动化安装部署
    加密与CA证书的创建
    Linux系统启动和内核管理
    进程,系统性能和计划任务
    第十七周运维作业
    第十六周运维作业
    第十四周运维作业
    第十三周运维作业
    第十二周运维作业
    第十一周运维作业
  • 原文地址:https://www.cnblogs.com/BonnieWss/p/10475436.html
Copyright © 2020-2023  润新知