zoukankan      html  css  js  c++  java
  • StringBuffer类和StringBuilder类

    1、StringBuffer类

    是一个字符串缓冲区的类,线程安全运行效率低,用户存储可变字符串

    构造器:

    StringBuffer sb=new StringBuffer();//创建空字符串的容器
    StringBuffer sb=new StringBuffer(String);//将字符串使用容器存储
    StringBuffer sb=new StringBuffer(int);//声明指定容量的容器
    

    常用方法:

    1.1、append():追加字符串
    1.2、delete(int start,int end):删除指定位置的字符
    1.3、insert(int start,String):插入到指定位置
    1.4、reverse():反转字符
    1.5、capacity():获取初始容量
    1.6、ensureCapacity(int):设置最低所需容量

    2、StringBuilder类

    也是字符串缓冲区的类,它是线程不安全,且运行效率高的可变字符缓冲类

    其StringBuilder的方法与StringBuffer几乎一样

    面试题

    StringBuffer、StringBuilder和String的区别
    a、在运行速度上:StringBuilder > StringBuffer > String
    原因: String是字符串常量,而StringBuilder和StringBuffer是字符串变量,当需要改变字符串内容时,Stirng重新创建变量并赋值, 而StringBuilder和StringBuffer可直接改原有的值,所以效率高,
    ​ b、在线程安全上:StringBuffer > StringBuilder > String
    原因: StringBuffer是线程安全的,而StringBuilder线程不安全,在StringBuffer上的很多方法增加同步关键字(synchronized),导致在多个线程运行时,保持数据的完整性和一致性,而StringBuilder的方法并没有同步 ,如果在多线程环境下为了确保数据安全,建议使用StringBuffer ,如果在单线程环境下,提高效率使用StringBuilder

  • 相关阅读:
    HAOI2008题解
    codeforces round375(div.2)题解
    codeforces round373(div.2) 题解
    TJOI2015题解
    CF976D. Degree Set
    dtoj#4243. 熊猫(i)
    dtoj#4242. 大爷(w)&&CF1061E
    CF786C Till I Collapse
    dtoj#4239. 删边(cip)
    dtoj#2504. ZCC loves cube(cube)
  • 原文地址:https://www.cnblogs.com/zzk201/p/13886538.html
Copyright © 2011-2022 走看看