String、StringBuilder、StringBuffer的区别和常用方法

String、StringBuilder和StringBuffer的区别及常用方法的使用 本文将会对String、StringBuilder和StringBuffer的主要区别进行简要的概括,特别会从性能、安全性和使用场景上进行一定的分析。最后会对这三者常用的方法进行一定的归纳总结。适用于入门学习、面试以及日常开发中查找方法。 阅读详情

目录

一,定义

1.1,String

1.2,StringBuilder

1.3,StringBuffer

1.4,三者区别

二,StringBuffer和StringBuilder常用方法

2.1,append()方法

2.2,delete()方法

 2.3,insert()方法

2.4,reverse()方法

2.5,replace()方法


一,定义

1.1,String

        对于String来说,是把数据存放在了常量池中,因为所有的String,默认都是以常量形式保存,且由final修饰,因此在线程池中它是线程安全的。因为每一个String当被创建好了以后,他就不再发生任何变化,但是它的执行速度是最差的。
        我们要创建String的时候,他在常量池中对这些信息进行处理,如果在程序中出现了大量字符串拼接的工作,效率是非常底下的。
        因此使用场景是在少量字符串操作的时候才建议直接使用String来操作。

示例代码:

        String str="aaa";
        System.out.println(str);
        str="bbb";
        System.out.println(str);

输出结果:

1.2,StringBuilder


        在进行多线程处理的时候,如果多个线程对于这一个对象同时产生操作,会产生预期之外的结果。对于StringBuilder来说,执行效率虽然高,但是因为线程不安全,所以不建议在多线程的环境下对同一个StringBuilder对象进行操作。
        因此StringBuilder适用于单线程环境下的大量字符串操作。

        String str="aaa"+"bbb";
        StringBuilder stringBuilder=new StringBuilder().append("abc").append("de");
        System.out.println(str);
        System.out.println(stringBuilder.toString());
        System.out.println(stringBuilder);

输出结果:

1.3,StringBuffer

        StringBuffer相对于StringBuilder效率要相对低一点,但也远比String要高的多。效率低的原因:对于StringBuffer来说更多的考虑到了多线程的情况,在进行字符串操作的时候,它使用了synchronize关键字,对方法进行了同步处理。
        因此StringBuffer适用于多线程环境下的大量操作。

1.4,三者区别

String 固定不可变字 符串StringBuffer 可变StringBuilder 可变
String的值是不可变 的,这就导致每次对 String的操作都会生 成新的String对象, 不仅效率低下,而且 浪费大量优先的内存 空间StringBuffer是可变类,和线程安全的字符串 操作类,任何对它指向的字符串的操作都不会 产生新的对象。每个StringBuffer对象都有一 定的缓冲区容量,当字符串大小没有超过容量 时,不会分配新的容量,当字符串大小超过容 量时,会自动增加容量可变类,速度 更快
不可变可变可变
线程安全线程不安全
多线程操作字符串单线程操作字符串

二,StringBuffer和StringBuilder常用方法

  • public StringBuffer append(String s) 将指定的字符串追加到此字符序列。
  • public StringBuffer reverse() 将此字符序列用其反转形式取代。
  • public StringBuilder delete(int start, int end) 移除此序列的子字符串中的字符。
  • public insert(int offset, int i) 将 int 参数的字符串表示形式插入此序列中。
  • insert(int offset, String str) 将 str 参数的字符串插入此序列中。
  • replace(int start, int end, String str) 使用给定 String 中的字符替换此序列的子字符串中的 字符。

2.1,append()方法

        添加字符串内容;

示例代码:

        StringBuilder stringBuilder=new StringBuilder("aaa");
        stringBuilder.append("bbb");
        System.out.println(stringBuilder);

输出结果:

2.2,delete()方法

        删除指定索引内字符串内容;

示例代码:

        StringBuilder stringBuilder=new StringBuilder("aabbaa");
        stringBuilder.delete(2,4);
        System.out.println(stringBuilder);

 输出结果:

 2.3,insert()方法

        在指定索引内添加字符串内容;

示例代码:

        StringBuilder stringBuilder=new StringBuilder("aabbaa");
        stringBuilder.insert(2,",");
        System.out.println(stringBuilder);

输出结果:

2.4,reverse()方法

        将字符串进行倒置;

示例代码:

        StringBuilder stringBuilder=new StringBuilder("abc");
        stringBuilder.reverse();
        System.out.println(stringBuilder);

输出结果:

2.5,replace()方法

        替换指定索引内字符串内容;

示例代码:

        StringBuilder stringBuilder=new StringBuilder("abcde");
        stringBuilder.replace(2,4,"k");
        System.out.println(stringBuilder);
        StringBuilder stringBuilder1=new StringBuilder("abcde");
        stringBuilder1.replace(2,2,"k");
        System.out.println(stringBuilder1);

输出结果:

告别OLE!Delphi操作Excel的3种轻量级方案横向评测(FlexCel/XLSReadWriteII/LibXL) 本文深入评测了Delphi操作Excel的三种轻量级方案:FlexCel、XLSReadWriteII和LibXL。通过技术架构、API设计、性能测试和实战案例的全面对比,帮助开发者选择最适合的工具,提升Excel文件处理效率,告别传统OLE方案的依赖和性能问题。 阅读详情

相关推荐

AFSim仿真系统中的图像处理器:从静态图像到视频流的目标识别技术解析

本文深入解析了AFSim仿真系统中WSF_IMAGE_PROCESSOR图像处理器的核心功能与技术实现。它详细阐述了该处理器如何从静态图像与视频流中完成目标检测、跟踪与识别,将原始像素数据转化为可供指挥系统使用的轨迹情报,并重点介绍了其基于约翰逊准则的目标识别进阶逻辑、关键参数配置以及脚本扩展能力,为构建高逼真度仿真应用提供了实践指导。

cola5的博客 213

String、StringBuffer、StringBuilder的常用方法及区别

String类介绍 String是一个引用数据类型默认为null; String 为final类型不可更改,不能被继承; 基本类型与String结合都会转换为String类型; 一、String常用方法 字符串的链接 length()方法 1、使用String类的length()方法可获得声明的字符串对象的长度。 //空格也被视为字符参与长度计算 String str = "We are students"; int size = srt.length();//此时size的值为15; lengt

weixin_46052571的博客 728

【MUJOCO控制篇-2】控制一个简单的机械臂

本篇博客将逐步分析和解释如何通过Python代码使用MuJoCo库来控制一个机械臂模型。我们将从加载模型开始,逐步深入到PID控制器的实现,最后讨论如何实现轨迹跟踪功能。上期内容为如何建模一个简单的机械臂模型,本篇文章将基于上篇内容进行深入探讨如何实现一个简单的控制。

echo_Fangyb的博客 6747

String、StringBuilder、StringBuffer的区别。和StringBuilder的方法

1.String、StringBuilder、StringBuffer的区别。和StringBuilder的方法 1.1.1 String 与 StringBuilder、StringBuffer 相同点:都是存储字符串 不同点:String是不可变的,而StringBuilder、StringBuffer是可变的 1.1.2 StringBuilder与StringBuffer 相同点:都是可变字符串,都是AbstractStringBuilder类的子类 不同点: StringBuil..

qq_51012353的博客 224

Pipeline更多理解

Pipe 类型用途VIGVideo Image Generator:用于图层显示,支持 scaling、rotationRGB简单图层显示,较低优先级DMA主要用于 writeback / WFD / composition output,即从 framebuffer 输出到外部设备(或 memory)Cursor小图层,用于显示指针等很可能是:分别用于主屏、仪表、虚拟显示的输出路径或者用于不同的 display 去做 GPU_TARGET / writeback 的拷贝你看到的意思。

Damon_X的博客 1052

redhawk:avgTW maxTW minTW minWC的区别

分析dynamic ir drop报告时会遇到这几个值,avgTW maxTW minTW minWC,如下图。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 691

Java中String类的常用方法以及String,StringBuffer,StringBuilder的区别

String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,不能有类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。1.String str = "Hello";2.String str = new String("Hello");1.int length():返回字符串的长度2.char charAt(int index):返回指定索引处的字符3.String toLowerCase()

AMYCX的博客 190

AI测试实战:手把手教你做LLM(大模型)性能测试「含完整代码」

大模型API性能测试是评估模型服务响应能力、吞吐量和资源效率的关键手段。核心指标包括总响应时间、吐字率、首token延迟、输入/输出tokens数量、QPM等。测试流程涵盖构造负载、并发请求、数据采集和指标计算。优化建议针对吐字率低、首token延迟高、QPM偏低等问题,从模型、硬件、系统等多层面提出解决方案。

blues_C的博客 1430

Java之String,StringBuilder和StringBuffer的区别及常用方法

Java之String,StringBuilder和StringBuffer的区别及使用String创建方式常用方法StringBuilder创建方式StringBuffer创建方式StringBuilder和StringBuffer常用方法 String String又称不可变序列。 创建方式 //第一种 String s1="helloworld"; //第二种 String s2=new String("helloworld"); 注:这里s1==s2为false 常用方法 长度 length

xiaozhuzhuyang的博客 201

EDKII环境配置完整版

参考博客【EDK2 UDK2018的环境搭建】:https://blog.csdn.net/qq_39155263/article/details/82965744下载EDK2 1.直接从https://github.com/tianocore/edk2/ 网站下载.zip压缩文件 2.运用svn 从http://svn.code.sf.net/p/edk2/code/trunk/edk2edk2下载 3.安装Visual Studio2017 安装其他Tool 1.IASL 从https..

tianpu2320959696的博客 1851

YOLOv12改进策略【模型轻量化】| 替换骨干网络为EfficientNet v1 高效的移动倒置瓶颈结构

本文记录的是基于。采用了创新性的方法,通过精心平衡网络和来提升性能。本文将的设计优势融入YOLOv12中,提升YOLOv12的性能与效率,使其在目标检测任务中表现更为出色。本文配置了原模型中的共种不同大小的模型结构,以满足不同的需求。

Limiiiing的博客 963

StringBuilder,String,StringBuffer的区别与常用String方法

常用String方法 1,char charAt (int index) 返回给定位置的代码单元。 2,int compareTo(String other) 比较字符串大小 按照字典顺序(编码顺序),如果字符串位于 other 之前, 返回一个负数;如果字符串位于 other 之 后,返回一个正数;如果两个字符串相等,返回 0 3,boolean equals(0bject other) 字符串相等的比较(字符串的比较只能用eq...

yyswit的博客 177

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

简述StringBuffer与StringBuilder、String类的区别及StringBuffer常用的方法

String Java中的String类型是不允许改变其内容的,String类型的对象一旦建立,将在堆内存当中占据一个固定的内存空间,String类型的对象无法改变。 但是你在运算的时候又发现,你定义的String类型的s变量又是可以进行连接的,如"abc"+“def"最终得到的s的值是"abcdef”,这是改变了定义的String类型的变量指向,你定义的String s其实是一个指向String...

qq_43543543的博客 353

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

String、StringBuffer、StringBuilder常用方法和区别

是 Java 中 String 类的一个方法,它的作用是去除字符串两端的空白字符(空格、制表符、换行符等),并返回一个新的字符串。去除字符串两端的空白字符,包括空格、制表符(Tab)、换行符(Newline)等。根据具体的应用场景和性能需求,选择合适的字符串处理类能够更高效地操作和处理字符串。方法只处理字符串两端的空白字符,不会去除字符串中间的空白字符。是Java中处理字符串的三种类,它们在功能和性能上有一些区别。返回一个新的字符串,原始字符串不会被改变。方法返回原始字符串的副本。

67321523的博客 170

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

String StringBuffer StringBuilder 类的区别 和 常用方法

String          字符不可以改变 她的内部 final 修饰类,不可以被继承      private final char value[];  值用数组接受, 并用 final修饰                  char[] v;  this.value = v;  的到的值是传入的大小    值一单确定不可以改变 StringBuffer和StringBuilde

javaqun的博客 521

String、StringBuilder、StringBuffer的区别及其常用方法

//String的trim(),去掉字符串首尾的空格 public class TrimDemo { public static void main(String[] args) { String str1=" hello world "; String str2="hello world"; System.out.println(str1); System.out.println(str1.equals(str2));//false

weixin_45528849的博客 346

Java中 String,StringBuffer,StringBuilder之间的区别和常用方法总结

String不可变的字符序列,底层使用char[]存储 StringBuffer可变的字符序列,线程安全的,效率低;底层使用char[]数组存储 StringBuilder可变的字符序列,JDK5.0新增的,线程不安全的,效率高;底层使用char[]数组存储 StringBuffer s1 = new StringBuffer("abc"); s1.setCharAt(0,'m'); System.out.println(s1);//mbc Sys.

路宇的博客 289

Java中String类的常用方法以及String、StringBuffer和StringBuilder的区别

String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象。java把String类声明的final类,不能有类。String类对象创建后不能修改,由0或多个字符组成,包含在一对双引号之间。 String类的两种实例化方式: 常用方法: 二:String、StringBuffer、StringBuilder的区别 StringBuffer、StringBuilder与String的区别:区别:都是final类,都不允许被继承String类长度是不可变的,S

weixin_68266487的博客 254

String,StringBuffer,StringBuilder三者的使用方法和区别

1.StringBuffer,StringBuilder的用法 toString()方法 将StringBuffer,StringBuilder对象转换为String字符串,常用在需要输出的时候,因为StringBuffer和StringBuilder的对象不能直接输出,例如: StringBuffer s1 = new StringBuffer(); s1.toString(); append...

weixin_42590334的博客 298

Java中String, StringBuffer, StringBuilder的区别和常用方法

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) String、StringBuffer、StringBuilder区别 StringBuffer、StringBuilder和String一样,也用来代表字符串。String类是不可变类,任何对String的改变都会引发新的String对象的

u011919863的博客 402

关于字符串String,StringBuffer,StringBuilder的区别、关系、方法等知识总结

1.String与其他二者的区别: String声明的是不可变的对象,每次操作都会生成新的String对象,然后将指针指向新对象。另外二者可以在原有对象上操作,所以经常改变字符串时最好不用String。 2.StringBuffer与StringBuilder作用相同,区别是: StringBuffer 线程安全 性能较低 多线程推荐使用 StringBuilder ...

Sunhongyu51的博客 415

java基础总结(面试高频问题)七:string、stringbuilder、stringbuffer区别,String 类的常用方法

1:String为什么是final修饰的; String使用final修饰,是出于安全的考虑,sun公司不希望使用者去继承String类并复写他的方法,因为这会对底层造成破坏; 2:执行速度: StringBuilder > StringBuffer > String String最慢的原因:   String为字符串常量,他是用final修饰的,即代表不可修改,不可被继承。而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,而

oscaryxy 284

Java_Day12(字符串的常用方法、StringBuilder方法、StringBuilder/StringBuffer与String的区别)

Java_Day12(字符串的常用方法、StringBuilder方法、StringBuilder/StringBuffer与String的区别) 字符串的常用方法 判断方法: boolean endsWith(String suffix) 检测此字符串是否以指定的后缀结尾。 boolean contains(CharSequence s) 检测此字符串包含指定的字符 boolean equals(Object anObject) 字符串比较 boolean EqualsIgnoreCase(String

weixin_47469183的博客 152

string与stringbuffer和stringbuilder的区别。以及String常用的方法

String String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于 生成了一个新的 String 对象, 然后将指针指向新的 String 对象,这样不仅效率低下,而且大量浪费有限的内存空间, 所以经常改变内容的字符串最好不要用 String 。 stringbuffer和stringbuilder stringbuffer是线程安全 stringbuilder是线程非安全 StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并

joshuacty的博客 183

Java基础重点之java--string常用方法+string、stringbuilder、stringbuffer区别

Java重点基础

秉持长期主义,保持长期生命力和竞争力 501

String、StringBuilder、StringBuffer、StringJoiner类的常用方法,以及区别

文章记载了String,StringBuilder 和 StringBuffer的区别点,

qq_46030254的博客 1243
上一篇: JAVA基础-String对象类的常用方法和应用
下一篇: JAVA-正则表达式基本语法规则和Pattern,Matcher,PatternSyntaxException三大类
涵冰...
博客等级 码龄4年 2438粉丝 243原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

涵冰...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值