zoukankan      html  css  js  c++  java
  • Java ------ StringBuffer 类和 String Builder 类

    一、使用StringBuffer 类处理字符串

    StringBuffer 也可以用来存储字符串,比String 类更高效的存储字符串的一种引用数据类型,特别是对字符串进行连接操作时,使用StringBuffer 类可以大大提高程序的执行效率。

    1、使用StringBuffer 类

    StringBuffer 类位于java.util包中,是String 类的增强类。

    声明StringBuffer 类并初始化

     StringBuffer stringBuffer = new StringBuffer("obge");

    2、StringBuffer 类常用方法

    String toString() : 转换为String 类型的对象并返回

    StringBuffer append(参数);   追加字符串,将参数连接到字符串后并返回。

    append() 方法与concat() 方法一样都是把一个字符串追加到另一个字符串后。

             不同的是String类中只能将String类型的字符串追加到另一个后面,StringBuffer类中可以将任何类型的值追加到字符串后。

     StringBuffer insert()  :  插入字符串

    字符串 . insert(位置,参数);
    //将参数插入到指定位置后并返回stringBuffer 类型,参数值可以是包括任何类型的值

    在StringBuffer类中的定义

     例子:

    package com.obge.test1;
    
    public class StringStu2 {
        public static void main(String[] args) {
    
            StringBuffer stringBuffer = new StringBuffer("obge哥哥");
            int num = 2223;
            //使用 append 追加
            StringBuffer stringBufferAppend = stringBuffer.append(num);
            System.out.println("现在的字符串为:"+stringBufferAppend);
            //每隔2 位 添加 *
            for(int i= stringBufferAppend.length()-2;i>0;i=i-2){
                stringBufferAppend.insert(i,"*");
            }
            System.out.println("添加*后的字符串为:"+stringBufferAppend);
        }
    }

    控制台输出内容:

    二、使用StringBuilder 类处理字符串 

    StringBuilder 位于Java.lang 包中,是JDK 5.0 新增的类,是一个可变的字符序列。此类提供了一个与StringBuffer 兼容的API ,被设计用作StringBuffer的一个简易替换,在大多数实现中,比StringBuffer 执行要快。

    StringBuilder  类处理字符串方法与StringBuffer类基本一致

    注意哦  没有 synchronized,不提供同步,单线程的

    三、String类、StringBuffer类以及StringBuilder类对比

    String 类:是不可变的对象,在每次对String 类型进行改变时等同于生成了一个新的String 对象,然后指向新的String对象,所以经常改变内容的字符串最好不要用String类型,因为每次生成对象都会对系统性能产生影响。

    StringBuffer类:时可变的字符串,在每次对StringBuffer对象进行改变时,会对StringBuffer 对象本身进行操作,而不是生成新的对象,在改变对象引用。所以在字符串经常改变的情况下推荐使用StringBuffer l类。

    在字符串连接操作中,StringBuffer 类的执行效率比String类高

    通过 + 号来进行追加子符串操作时,实际是通过建立一个StringBuffer 对象,让他调用append() 方法,最后在转化为String ,比StringBuffer 多了一些附加操作所以效率低,而且String对象的不可变性也比较影响性能。

    StringBuilder 类:是单线程的不提供同步,理论上比StringBuffer效率更高。但是StringBuffer是线程安全的。

              

    这和引用类型与基本类型的存储有点相似

  • 相关阅读:
    PyCharm 的安装与入门操作
    第一个 Python 程序
    ubuntu中使用apt命令安装ipython失败解决方案
    MOS管学习笔记
    arm-none-linux-gnueabi-gcc No such file or directory这个错误的解决方法
    Taglist: Exuberant ctags (http://ctags.sf.net) not found in PATH. Plugin is not loaded.
    linux 下chown改变隐藏文件夹
    busybox编译 fatal error: curses.h: 没有那个文件或目录解决办法
    mount加载虚拟机增强工具步骤
    命令行终端快捷键
  • 原文地址:https://www.cnblogs.com/obge/p/12650760.html
Copyright © 2011-2022 走看看