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

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

    和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

    StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

    由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。 

    public class Test{
      public static void main(String args[]){
        StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
        sBuffer.append("www");
        sBuffer.append(".runoob");
        sBuffer.append(".com");
        System.out.println(sBuffer);  
      }
    }

    输出结果 :菜鸟教程官网:www.runoob.com

    StringBuffer类的主要方法:

    1. append(String s) 将指定的字段追加到此字符的序列

    2.  reverse() 将此字段序列反转

    3. delete(int Start,int end)  移除此序列的子字符串中的字符。

    4. replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的字符.

    Java 中 StringBuffer 和 String 是有一定的区别的,首先,String 是被 final 修饰的,他的长度是不可变的,就算调用 String 的 concat 方法,那也是把字符串拼接起来并重新创建一个对象,把拼接后的 String 的值赋给新创建的对象,而 StringBuffer 的长度是可变的,调用StringBuffer 的 append 方法,来改变 StringBuffer 的长度,并且,相比较于 StringBuffer,String 一旦发生长度变化,是非常耗费内存的!

    JAVA 中的 StringBuilder 和 StringBuffer 适用的场景是什么?

    1.StringBuilder非线程安全(单线程使用),String与StringBuffer线程安全(多线程使用).

    2.如果程序不是多线程的,那么使用StringBuilder效率高于StringBuffer。

    3.StringBuffer字符串变量(线程安全)是一个容器,最终会通过toString方法变成字符串;

    4.StringBuilder 字符串变量(非线程安全)。

    总结

    (1)如果要操作少量的数据用 String; 
    (2)多线程操作字符串缓冲区下操作大量数据 StringBuffer; 
    (3)单线程操作字符串缓冲区下操作大量数据 StringBuilder。

  • 相关阅读:
    微信小程序日期插件默认获取延后时间示例
    【SpringBoot2 从0开始】底层注解
    【SpringBoot2 从0开始】实现自动配置的过程
    【SpringBoot2 从0开始】开发世界著名程序体验 springboot
    【SpringBoot2 从0开始】springboot 与 spring
    【SpringMVC 从 0 开始】使用注解方式配置 SpringMVC
    【SpringMVC 从 0 开始】异常处理器
    【SpringMVC 从 0 开始】拦截器介绍
    【SpringMVC 从 0 开始】文件上传和下载
    【SpringMVC 从 0 开始】HttpMessageConverter 报文信息转换器
  • 原文地址:https://www.cnblogs.com/time-to-despair/p/9968046.html
Copyright © 2011-2022 走看看