StringBuffer帮你减轻Java的负担

东方财富网 数据访问接口及字段说明 东方财富网 数据访问接口和字段说明 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 处理文本值是程序员的日常工作,通常用标准的Java String类来完成与文本有关的需求。它对于很多小任务确实很适用,但是如果处理的是大型任务,它会大量消耗系统资源。由于这个原因,JDK引入了StringBuffer类以提供一条处理字符串的有效路径。让我们来看看怎样用这个类来提升性能。 为什么不用标准的String? Java String对象是常量字符串。一旦被初始化和付值,它的值和所分配的内存就被固定了。如果硬要改变它的值,将会产生一个包含新值的新String对象。这就是String对象会消耗掉很多资源的原因。下面的代码创建了一个String对象并使用串联( )符号来为它添加更多字符: String sample1=new String(“Builder.com”); sample1 =”is”; sample1 =”the place”; sample1 =”to be.”; 系统最终会创建四个String对象来完成上面的替换。其中第一个的文本是Builder.com。然后每次添加文本时都会创建一个新的对象。 这种方法的问题在于为了这么一个简单的过程而消耗了太多的资源。在这个例子中其影响也许很小(指给出了很少的代码),但是在一个拥有多得多操作的大型应用程序中这样做就会使性能下降。StringBuffer类所要解决的正是这个问题。 用StringBuffer处理字符串 StringBuffer类被设计用与创建和操作动态字符串信息。为该对象分配的内存会自动扩展以容纳新增的文本。有三种方法来创建一个新的StringBuffer对象:使用初始化字符串、设定大小以及使用默认构造函数: StringBuffer sb=new StringBuffer(); StringBuffer sb=new StringBuffer(30); StringBuffer sb=new StringBuffer(“Builder.com”); 第一行创建了不包含任何文本的对象,默认的容量是16个字符。类的第二个实例也不包含文本,容量是30个字符,最后一行创建了一个拥有初始化值的对象。StringBuffer类位于java.lang基础包中,因此要使用它的话不需要特殊的引入语句。 一旦创建了StringBuffer类的对象,就可以使用StringBuffer类的大量方法和属性。最显著的方法是append,它将文本添加到当前StringBuffer对象内容的结尾。下面的代码示例了append方法的语法: StringBuffer sb=new StringBuffer(); sb.append(“B”); sb.append(“u”); sb.append(“i”); sb.append(“l”); sb.append(“d”); sb.append(“e”); sb.append(“r”); sb.append(“.com”); System.out.println(sb.toString()); 这些代码创建了Builder.com字符串并将它送往标准输出,但是只创建了一个对象。如果使用String对象就需要八个以上的对象。注意代码利用了StringBuffer类的toString方法。这个方法将其内容转换成一个可以被用于输出的字符串对象。它允许操作对应的文本用于输出或数据存储。 append方法有十种重载形式,允许将各种类型的数据添加到对象的末尾。StringBuffer类还提供了处理对象内部数据的方法。 StringBuffer的容量 可以使用capacity和length方法来设定对象内的字符数。capacity方法返回为对象分配的字符数(内存)。如果超过了容量,它会自动扩展以符合需求。length方法返回对象目前存储的字符数。可以通过setLength方法来增加其长度。另外,对象的容量可以通过ensureCapacity方法来扩展。它建立了对象的最小容量,因此如果超出则不会有任何问题。下面的代码用到了这些方法: StringBuffer sb=new StringBuffer(); sb.ensureCapacity(40); sb.append(“Builder.com is awesome!”); Systrm.out.println(sb.toString()); sb.setLength(11); Systrm.out.println(sb.toString()); 代码设置了字符串的容量并为其付值。length属性被重新设置了,因此文本被截断了。输入结果如下: Builder.com is awesome! Builder.com 操作字符串 还有更多的方法来处理存储在StringBuffer对象内的字符串。以下列举了几个例子: CharAt返回字符串中的单个字符。 SetCharAt为字符串中的单个字符付值或进行替换。 GetChars返回字符串的一个子字符串。 Insert在字符串指定位置插入值。它有多个重载版本以容纳各种数据类型。 Substring返回字符串的一个子集。 Reverse倒置StringBuffer的内容。 所有的方法对于操作值来说都是很有用的,但是reverse方法最酷了——它使你只用一个调用就轻松地倒置了一个字符串。下面的代码和数出结果作了示范: StringBuffer sb=new StringBuffer(); sb.ensureCapacity(100); sb.append(“Builder.com!”); System.out.println(sb.toString()); sb.reverse(); Systrm.out.println(sb.toString()); 输出: Builder.com! !moc.redliuB StringBuffer的优势 字符串的使用贯穿于决大多数应用程序,不管是作为用户界面的标识或在后台处理从数据库取回的值。通常,这些值并不符合要求,需要处理。你可以使用String类,但是它并不是设计成处理动态值的。而StringBuffer类正好填补了这个需求并使得系统资源的利用更加有效。
【原理图与PCB专题】使用Cadence如何在Layout时直接互换相同功能的PIN Cadence允许我们在PCB中互换管脚,最后再反标给原理图。集成TVS管、排阻、DDR、FPGA有一些PIN是完全相同功能,可进行管脚互换的,建议使用这个功能。可降低硬件工程师与Layout工程师之间沟通成本,加快设计进度。 阅读详情

相关推荐

FPGA赋能:从加权灰度均值到快速收敛的自动曝光实战

本文深入探讨了FPGA在工业视觉自动曝光算法中的应用,重点介绍了加权灰度均值法的优化实现与快速收敛策略。通过硬件友好的算法改造和流水线架构设计,FPGA方案能在1帧内完成曝光调整,显著提升处理速度和能效比,适用于复杂光照条件下的工业检测场景。

weixin_29306317的博客 82

StringBuffer 清空StringBuffer的实例的三种方法

@Test public void testStringbuffer(){ //StringBuffer类没有clear方法,不过可以通过下面两种方法来清空一个StringBuffer的实例: StringBuffer sb = new StringBuffer(); sb.append("123"); sb.a...

weixin_33834910的博客 428

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 333

Java对象转为String的几种常用方法

在Java项目的实际开发和应用中,常常需要用到将对象转为String这一基本功能。本文将对常用的转换方法进行一个总结。常用的方法有 Object#toString(),(String)要转换的对象,String.valueOf(Object)等。下面对这些方法一一进行分析。方法1:采用 Object#toString()方法请看下面的例子: Object object = getObj

vanttc的专栏 536

GameFramework教程✨六、怎样加载一个3D UI

怎样加载一个3D UI

星河造梦坊 1583

34、Text2KGBench与GeoQuestions1089:知识图谱生成与地理空间问答的新进展

本文介绍了Text2KGBench和GeoQuestions1089在知识图谱生成与地理空间问答领域的最新进展。Text2KGBench提供了一个开放且可复现的基准,用于从文本生成知识图谱,并结合多个LLM模型和评估工具推动研究。GeoQuestions1089是目前最大的地理空间问答数据集,与GeoQA2系统结合,推动了地理空间问答系统的发展。文章还探讨了技术挑战和未来研究方向,包括多模态知识图谱生成和深度学习优化的地理空间问答系统。

css33的专栏 114

java StringBuffer使用

StringBuffer一般用在高效率的字符串追加(即构造新字符串),它和String用+=进行追加在功能上是等价的,不过效率却远远大于后者。 StringBuffer是一个线程安全的、可变的字符序列。 可变: 其实它很像String,只不过在追加或修改时,String要重新创建对象来保存新值,而StringBuffer对象则允许对其自身进行修改,不用重新创建对象。在web服务器上,如果用S

1572

【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)

本专栏整理了《深度学习时间序列预测案例》,内包含了各种不同的基于深度学习模型的时间序列预测方法,例如LSTM、GRU、CNN(一维卷积、二维卷积)、LSTM-CNN、BiLSTM、Self-Attention、LSTM-Attention、Transformer等经典模型,包含项目原理以及源码,每一个项目实例都附带有完整的代码+数据集。

优快云 精品推荐 4万+

【巩固Java基础】String、StringBuffer、StringBuilder

针对以上面试题,小编已经把面试题+答案整理好了。

756

Android 14.0 开机广播接收慢广播延迟问题分析

在14.0的系统rom定制化开发中,在某些时候在接收开机广播的时候发现,过了一分钟才收到开机广播,接下来就需要分析下 开机广播的相关分发机制,来处理下相关问题

安卓兼职framework和app工程师的博客 631

基于Simulink的加速度计振动分析:单自由度质量-弹簧-阻尼系统

摘要:基于Simulink的加速度计单自由度振动分析 本文研究了加速度计的单自由度(SDOF)质量-弹簧-阻尼系统模型,通过MATLAB/Simulink平台建立了完整的振动分析仿真系统。文章详细阐述了理论建模过程,推导了系统运动微分方程和传递函数,并提供了Simulink模型搭建的具体步骤和MATLAB实现代码。研究通过正弦扫频、随机振动和冲击响应三种典型输入信号,分析了系统的幅频特性、相频特性及时域响应,验证了加速度计的工作机理。仿真结果表明,该方法能有效模拟加速度计在不同激励条件下的动态特性,为传感器

AI的内部世界的博客 163

String,和StringBuffer ,StringBuilder

毕竟工作也这么久了 ,除了途虎一轮,也七七八八面试了不少大厂,像阿里、饿了么、美团、滴滴这些面试过程就不一一写在这篇文章上了。我会整理一份详细的面试过程及大家想知道的一些问题细节。

2401_83916030的博客 950

【深度学习】什么是自回归模型?

自回归模型是一种重要的时间序列模型,通过利用过去的值来预测当前或未来的值。它在统计学、经济学、自然语言处理等领域有广泛的应用。自回归模型的简单性和可解释性使其成为许多应用的首选,但在更复杂的情况下,可能需要结合其他模型如移动平均模型(MA模型)或混合模型(如ARIMA)来更好地捕捉时间序列中的模式。扩散模型(Diffusion Model)和自回归模型(Autoregressive Model)是两种不同的生成模型,各自有独特的特点和应用场景。

q742971636的博客 1671

Java基础---StringBuffer类详解

与String类不同,StringBuffer类表示长度和内容动态可变的字符串缓存。它有两个基本参数:长度和容量,长度即StringBuffer对象所表示的字符串长度;容量是StringBuffer对象所拥有的内存空间大小。比如,某个StringBuffer对象容量是100,但它存放的字符串长度可能仅为10,程序员可直接对缓存进行插入、修改、删除、替换等操作,操作结果会影响串对象。比之传统的字符,StringBuffer能自动管理字符串占用的内存空间,减轻程序员的负担。 StringBuffer的构造方法如

qq_44400110的博客 1116

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Java基础 - StringBuffer,数组高级,基本数据包装类

A:Arrays类概述针对数组进行操作的工具类。提供了排序,查找等功能。B:成员方法A:为什么会有基本类型包装类将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据。B:常用操作常用的操作之一:用于基本数据类型与字符串之间的转换。C:基本类型和包装类的对应自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

2401_83916283的博客 827

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

30个要点帮你完成java代码优化

通过java代码规范来优化程序,优化内存使用情况,防止内存泄露 可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。 在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧妙地运用java.lang.String类和java.util.Vector类,它能够显著地提高程序的性能。下面

m0_67659981的博客 2072

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java核心技术学习笔记——理解 String,StringBuffer,StringBuilder

由于篇幅限制,小编在此截出几张知识讲解的图解一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**[外链图片转存中…(img-ZXpQ4tki-1712793290563)]

2401_84166896的博客 855
上一篇: 有关手机中文问题传输的解决办法
下一篇: java程序员如何Ant的task开发java程序
java169
博客等级 码龄18年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值