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

  • 相关阅读:
    二维数组传递参数问题
    常用软件
    mybatis项目采用mybatis-plus开发,报:Invalid bound statement (not found) 异常,详细解决方案
    PowerDesigner一键导出数据库设计表结构
    微信即将有自己的输入法,真的是要保护用户隐私吗?
    字段解析之OopMapBlock(4)
    字段解析(3)
    字段解析之伪共享(2)
    字段解析(1)
    常量池解析(2)
  • 原文地址:https://www.cnblogs.com/zzk201/p/13886538.html
Copyright © 2011-2022 走看看