String是一个类,但却是不可变的,所以String创建的算是一个字符串常量,StringBuffer和StringBuilder都是可变的。所以每次修改String对象的值都是新建一个对象再指向这个对象。而使用StringBuffer则是对StringBuffer对象本身进行操作。所以在字符串j经常改变的情况下,使用StringBuffer要快得多。
但在某些情况下:
String S1 = “Who” + “ is” + “ faster?”;
StringBuffer Stb = new StringBuilder(“Who”).append(“ is”).append(“ faster?”);
S1的素对会比Stb快得多, 是因为JVM把String对象的拼接解释成了StringBuffer对象的拼接,其实在JVM就是:
String S1="Who is faster?";
不过如果,字符串是来自其他对象,如:
String s1="Who";
String s2=" is";
String s3=" faster?";
String st=s1+s2+s3;
这个时候,String的速度就比不上StringBuffer了。
StringBuffer和StringBuilder
在操作字符串对象,StringBuiler是最快的,StringBuffer次之,String最慢。
public final class StringBuffer
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
public final class StringBuilder
extends AbstractStringBuilder
implements java.io.Serializable, CharSequence
可以看到StringBuffer和StringBuilder都继承继承了同一个抽象类。
Java.lang.StringBuffer线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。
每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。
StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。
java.lang.StringBuilder一个可变的字符序列是5.0新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步, StringBuilder的速度比StringBuffer快。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。两者的方法基本相同。
如果要多次操作字符串,使用StringBuffer和StringBuilder会提高效率,但至少在数量级超过百万时,StringBuilder的速度才会体现出来。
分享到:
相关推荐
"H6逆变器拓扑:离网并网仿真模型研究,支持多模式功率调节与共模电流抑制",#H6逆变器拓扑并离网仿真模型 逆变器拓扑为:h6逆变器拓扑。 仿真说明: 1.离网时支持非单位功率因数负载。 2.并网时支持功率因数调节。 3.具有共模电流抑制能力(共模电压稳定在Udc 2)。 4.有两种滤波器版本(LC LCL)。 5.LC版本下,参考电流20A时所对应的电流THD约为1%。 此外,采用PR单环控制,具有sogipll锁相环,lcl滤波器。 注:(V0001) Plecs版本4.7.3及以上 ,H6逆变器拓扑;离网仿真;并网仿真;非单位功率因数负载;功率因数调节;共模电流抑制;共模电压稳定;滤波器版本;LC LCL滤波器;PR单环控制;sogipll锁相环;Plecs版本4.7.3,H6逆变器拓扑的并离网仿真模型
大厂PFC与全桥LLC集成变频控制的两相交错TCM图腾柱PWM代码实现方法及优化策略,大厂量产的两相交错TCM图腾柱变频控制PFC+全桥LLC源代码 PFC可通过变频控制实现软开关 ,两相交错TCM; 图腾柱变频控制; PFC; 全桥LLC; 软开关。,大厂高频两相交错TCM图腾柱PFC+全桥LLC变频控制源代码
台达PLC高效自动追剪系统:自动计算,稳定运行,可靠编程的自动化解决方案,台达PLC追剪追剪追剪加+剪切 ,编码器追踪送料速度和送料长度,程序可设置滚轮直径,编码器分辨率,电机分辨率及丝杠导程。 根据输入参数自动计算。 程序带手动正反转,自动追剪切断,带手动复位及回原点,调节方便。 实用已在机床上稳定运行两年,程序成熟可靠,程序是我自己写的算法,时请认准我本人,其他人均为盗版,盗版需谨慎。 台达plc,触摸屏用中达一体机触摸屏。 ,核心关键词:台达PLC;追剪;编码器追踪;送料速度和送料长度;程序设置;滚轮直径;电机分辨率;丝杠导程;自动计算;手动正反转;自动追剪切断;手动复位;回原点;程序成熟可靠;中达一体机触摸屏。,"台达PLC自动化追剪系统:精确编码追踪与手动控制集成"
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
# 基于Arduino的BSides Cheltenham 2024 UFO徽章系统 ## 项目简介 这是一个为BSides Cheltenham 2024定制的UFO徽章系统项目。项目包含电路板设计、Arduino代码以及配件清单等。通过此项目,参与者可以制作自己的专属徽章,体验科技与传统结合的乐趣。 ## 项目的主要特性和功能 1. 电路板设计使用Eagle工具设计的电路板,包括PCB文件和元件布局。 2. Arduino代码提供基于ATTiny402微控制器的Arduino代码,用于驱动徽章的硬件功能。 3. 定制设计文件上传了原始矢量设计文件,可根据需要进行修改和个性化定制。 4. 可定制化强可以通过简单的修改代码和更换硬件实现多种功能,比如加入LED灯显示效果、按键交互等。 ## 安装使用步骤 以下步骤假设用户已经下载了本项目的源码文件 1. 获取源码文件下载项目源码文件并解压。
基于西门子S7-200 PLC与组态王软件的洗衣机控制系统设计优化方案 No.710,No.710 基于西门子S7-200 PLC和组态王组态洗衣机控制系统设计 ,基于西门子S7-200 PLC; 洗衣机控制系统设计; 组态王组态; 控制系统设计。,西门子PLC与组态王洗衣控制系统的设计与实施。
2024免费毕业设计成品,包括源码+数据库+往届论文资料 启动教程:https://www.bilibili.com/video/BV11ktveuE2d 讲解视频:https://www.bilibili.com/video/BV1YfkHYwEME 二次开发教程:https://www.bilibili.com/video/BV1Cw2rY1ErC
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
"西门子224XP与昆仑通态触摸屏结合的螺杆式空压机工频运行系统:程序注释详尽,直接应用于工程实践的变频机替代方案",螺杆式空压机工频运行,变频机不能用使用西门子224xp 十昆仑通态触摸屏,程序有注释,可直接用于工程 ,螺杆式空压机; 工频运行; 变频机; 不可用; 西门子224xp; 昆仑通态触摸屏; 程序注释; 工程使用,"西门子224XP+昆仑通态触摸屏:螺杆空压机工频运行程序"
基于CNN-BiLSTM-SE注意力机制的时序预测模型:MATLAB环境下的数据回归分析与应用评估,基于卷积神经网络-双向长短时记忆网络结合SE注意力机制的时间序列预测(CNN-BiLSTM-SE) 基于MATLAB环境 替自己的数据即可 基本流程:首先通过卷积神经网络CNN进行特征提取,然后通过通道注意力机制SE对不同的特征赋予不同的权重,最后通过双向长短时记忆网络BiLSTM进行时间序列预测 数据回归预测评价指标为RMSE MAE MBE R2 ,核心关键词:卷积神经网络(CNN); 双向长短时记忆网络(BiLSTM); SE注意力机制; 时间序列预测; MATLAB环境; 特征提取; 权重赋予; 数据回归预测; 评价指标(RMSE、MAE、MBE、R2)。,CNN-BiLSTM-SE注意力机制:MATLAB环境下的时间序列预测基本流程
"MATLAB R2018A中基于超高斯全自动组织图像盲彩色反卷积方法研究——一种下采样预设值优化策略及参数设定",MATLAB环境下基于超高斯全自动组织图像盲彩色反卷积方法 算法运行环境为MATLAB R2018A,压缩包=数据+代码+参考。 opts.prescale = 1; %% downsampling opts.xk_iter = 5; %% the iterations opts.k_thresh = 1 20; opts.kernel_size = 51; ,MATLAB;超高斯全自动组织图像盲彩色反卷积方法;R2018A;压缩包;参数设置;opts.prescale;opts.xk_iter;opts.k_thresh;opts.kernel_size,MATLAB超高斯图像盲彩色反卷积算法v1.0
基于Omron PLC与MCGS组态的5层电梯控制系统优化设计:细节分析与工程实现,No.778 基于Omron欧姆龙PLC和MCGS组态5层五层电梯控制系统设计 ,基于Omron PLC; MCGS组态; 5层电梯; 控制系统设计,Omron PLC与MCGS组态五层电梯控制系统设计
"风能储能协同运行模型:永磁风机与储能系统的高效整合及控制策略研究【含详细参数选择与建模过程参考】",风力发电+储能并网协同运行模型【含个人笔记、参数选择参考资料】 包含永磁风机发电机、储能系统、单极单相并离网逆变器及其各自控制系统(也可以按照需求改为三相并网) 永磁直驱风机:机侧变流器采用转速外环电流内环的双闭环控制策略,爬山搜索法实现最大功率点跟踪控制。 储能电池采用buck-boost双向DCDC变器 控制策略采用电压外环电流内环双闭环控制 稳定直流母线电压400V恒定,电压纹波<1% 逆变并网采用单极调制,开关损耗大幅降低 逆变器采用电网电压前馈、电流环、锁相环控制,对于电网中含有的三次谐波有明显的抗干扰效果。 并网电流THD低至1.39%,满足并网要求 附带参考资料、建模过程参考文件夹(万字以上),含参数计算,亦有本人笔记,整理不易 ,风力发电; 储能并网; 永磁风机发电机; 控制系统; 储能系统; DCDC变换器; 电压控制; 逆变并网; 谐波抗干扰; 参数选择。,"协同运行模型:永磁风机储能系统及其控制系统设计与参数选择参考"
"X00133土壤侵蚀分析:R语言源码、数据集与效果图综合展示",X00133-土壤侵蚀数据分析R语言源码,数据集,和效果图 ,X00133;土壤侵蚀数据分析;R语言源码;数据集;效果图,"R语言源码分析X00133土壤侵蚀数据集与效果图展示"
MAC电脑QT安装资源包(一)
锂枝晶生长与隔膜特性研究:隔膜厚度和表面涂层对应力的补充影响分析,相场锂枝晶-隔膜厚度和表面涂层对枝晶生长影响(补充应力) 参考文献:Influences of Separator Thickness and Surface Coating on Lithium Dendrite Growth: A Phase-Field Study ,相场锂枝晶;隔膜厚度;表面涂层;应力;枝晶生长,相场研究:隔膜厚度与表面涂层对应力下锂枝晶生长的影响
项目均经过测试,可正常运行! 环境说明: 开发语言:java JDK版本:jdk1.8 框架:springboot 数据库:mysql 5.7/8 数据库工具:navicat 开发软件:eclipse/idea
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
基于三菱PLC与MCGS组态技术的自动门控制系统设计策略与应用,No.1074 基于三菱PLC和MCGS组态的自动门控制系统的设计 ,三菱PLC; MCGS组态; 自动门控制系统; 设计; 编号1074,基于三菱PLC与MCGS组态的自动门系统设计No.1074