首页 > 编程语言 >JavaSE--StringBuffer类与StringBuilder类

JavaSE--StringBuffer类与StringBuilder类

时间:2023-08-15 21:45:12浏览次数:46  
标签:-- StringBuffer StringBuilder stringBuffer 字符串 sb JavaSE append

开发中需要大量字符串的拼接操作,建议使用jdk中自带的StringBuffer与StringBuilder类

1、StringBuffer

优化StringBuffer的性能

  在创建StringBuffer的时候尽可能给定一个合适的初始化容量

  最好减少底层数组的扩容次数。预估计一下,给一个大一些初始化容量

// 创建一个初始化容量为16个byte[] 数组(字符串缓冲区对象)
// 本身自定义的容量就为16
StringBuffer stringBuffer = new StringBuffer();

// 拼接字符串,以后拼接字符串统一调用 append()方法。
// append是追加的意思
stringBuffer.append("a");
stringBuffer.append("b");
stringBuffer.append(3.14);
// append方法底层在进行追加的时候,如果byte数组满了,会自动扩容。
stringBuffer.append(100L);
System.out.println(stringBuffer.toString());

// 指定初始化容量的StringBuffer对象(字符串缓冲区对象)
// 优化了StringBuffer的性能
StringBuffer sb = new StringBuffer(30);
sb.append("hello");
sb.append("world");

System.out.println(sb);

 2、StringBuilder

  使用中与StringBuffer并无区别

3、StringBuffer和StringBuilder的区别

  StringBuffer中的方法都有:synchronized关键字修饰。表示StringBuffer在多线程环境下运行是安全的

  StringBuilder中的方法都没有:synchronized关键字修饰,表示StringBuilder在多线程环境下运行是不安全的

 

标签:--,StringBuffer,StringBuilder,stringBuffer,字符串,sb,JavaSE,append
From: https://www.cnblogs.com/hyy-0/p/17618198.html

相关文章

  • linux shell变量和数据类型
    变量是在编程中用于存储和操作数据的容器。在Shell脚本中,变量不需要事先声明数据类型,可以存储不同类型的值。以下是一些常见的变量和数据类型的示例:1.**字符串变量**:字符串是文本数据,在Shell脚本中用双引号或单引号括起来。NAME="Alice"MESSAGE='Hello,World!'2.**整数......
  • JavaSE--基本数据类型的包装类
    一、八种包装类1、为什么需要基本数据类型的包装类  有以下需求:方法参数为Objectobj,但是有需要传进去一个数字或者字符,publicclassIntegerTest01{publicstaticvoidmain(String[]args){//有没有这种需求:调用doSome()方法的时候需要传一个数字进去......
  • 配置无线网络
     目标:配置图示拓扑,使得笔记本电脑能根据DHCP服务器获得IP,笔记本vlan为192.168.101.x基本概念:AP:accesspoint 使得笔记本电脑得以连接wifiAC:控制AP的设备 1.AP配置原理及思路AP自动获得IP思路:1.配置DHCP客户端2.配置DHCP服务......
  • IO流
    IO(输入/输出)流是指用于在程序和外部数据源(例如文件、网络连接、内存缓冲区等)之间进行数据传输的机制。它是计算机编程中处理输入和输出的基本方式之一。IO流可以分为两种类型:输入流和输出流。输入流用于从外部数据源中读取数据到程序中,而输出流用于将程序中的数据写入到外部数据......
  • python 全国省名列表
    ['吉林','天津','台湾','云南','海南','山西','四川','山东','江西','浙江','辽宁','福建','湖北','江苏','内蒙古','宁夏'......
  • ansible剧本
    ansible剧本简单剧本----name:这是一个安装nginx的剧本hosts:webtasks:-name:01安装nginxyum:name:nginxstate:installed-name:02启动nginxsystemd:name:nginxstate:started剧本的高级特性高级特性是为了简化剧本比如,创建10个系统的用户不用循环......
  • 【线性代数】线性方程组 如何求方程组的解/基础解系/通解
    1.如何求齐次方程组的基础解系前面已经学过:基础解系的定义为:一个向量组中所有的向量都是原方程的解,并且线性无关,又能由这个向量组线性表出这个方程组的所有解。先讲齐次方程组是因为它右侧常数都为0,解起来更为简单。步骤:先对齐次方程组的系数矩阵作初等行变换,直到化为行阶梯矩......
  • Python教程(9)——Python变量类型列表list的用法介绍
    在Python中,列表(list)是一种有序、可变的数据结构,用于存储多个元素。列表可以包含不同类型的元素,包括整数、浮点数、字符串等。实际上列表有点类似C++语言中的数组,但仅仅只是类似,和数组还是有点不一样的。列表非常适合利用顺序和位置定位某一元素,尤其是当元素的顺序或内容经常发生改......
  • C语言数据的存储
    目录类型的基本归类整形在内存中的存储原码、反码、补码大小端介绍练习浮点型在内存中的存储浮点数存储的例子浮点数存储规则类型的基本归类整形家族:charunsignedcharsignedcharshortunsignedshort[int]signedshort[int]intunsignedint......
  • ThreadLocal的学习心得
    ThreadLocal是Java提供的线程本地存储机制,可以实现多线程环境下数据的隔离。主要特点是:每个线程都有自己的实例副本,实现了线程的数据隔离。ThreadLocal中存储的值对其他线程都不可见。通过get()和set()来读写当前线程的实例副本,避免了线程安全问题。本地线程副本通过弱......