问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

String和StringBuffer有什么区别啊?

发布网友 发布时间:2022-04-23 13:06

我来回答

2个回答

懂视网 时间:2022-04-22 04:06

 1 public class Test { 
 2 public static void main(String args[]) { 
 3  
 4  String str = "abc"; 
 5  StringBuffer sb = new StringBuffer("abc"); 
 6  Runtime runtime = Runtime.getRuntime(); 
 7  long start = System.currentTimeMillis(); 
 8  long startFreememory = runtime.freeMemory(); 
 9  for (int i = 0; i < 10000; i++) { 
10  str += i; 
11  //测试StringBuffer时候把注释打开 
12  //sb.append(i); 
13  } 
14  long endFreememory = runtime.freeMemory(); 
15  long end = System.currentTimeMillis(); 
16  System.out.println("操作耗时:" + (end - start) + "ms," + "内存消耗:" 
17   + (startFreememory - endFreememory)/1024 + "KB"); 
18 } 
19 } 
技术图片

 

 

测试结果:

使用String做10000次向一字符串后添加字符串

操作耗时:1872ms,内存消耗:1301KB

 

使用StringBuffer做10000次向一字符串后添加字符串

操作耗时:15ms,内存消耗:162KB

差别显著!


Dao持久层定义sql语句拼接参数之String和StringBuffer区别

标签:bsp   使用   lte   build   list   blog   复制   的区别   template   

热心网友 时间:2022-04-22 01:14

StringBuffer是一个具有对象引用传递特点的字符串对象。StringBuffer对象可以调用其方法动态的进行增加、插入、修改和删除操作,且不用像数组那样事先指定大小,从而实现多次插入字符,一次整体取出的效果,因而操作字符串非常灵活方便。一旦通过StringBuffer生成最终想要的字符串,就可调用它的toString方法将其转换为一个String对象 追问: StringBuffer调用它的toString方法指向一个地址,最后还是变成了一个String对象,为什么在不直接用String呢?如:pstmt = con.prepareStatement(sql.toString());和String sql1 = "select * from ...";pstmt = con.prepareStatement(sql1); 回答: String的操作都是改变赋值地址而不是改变值操作 String 类和 StringBuffer 类的比较:相同: 1: 都是用来处理字符串的 2:都提供了 length() , toString() ,charAt() , substring() 方法 ,用法一样 3:对于String 类和 StringBuffer 类,字符在字符串中的索引位置都从 0 开始。 4:两个类的 substring( int beginIndex, int endIndex)方法都是用来截取字符串,且范围都是从beginIndex 开始, 到 endIndex--1 为止。 不同: 1: String 类 是不可变类 , StringBuffer 类 是可变类 String 类提供的 比如 substring ,replace 等方法 都不会更改字符串内容,实际上是创建一个方法所浮于特性的新字符串。 返回一个改变后内容的新字符串。 StringBuffer 的 appeng(),等方法都会改变字符缓冲区中的字符串内容。 2:String 类 覆盖了Object类的 equals()方法 StringBuffer类没有覆盖 3: 都覆盖了Object()类的 toString() 方法,实现不一样 String类的toString() 方法返回当前String实例本身的引用。 StringBuffer类的toString方法返回一个以当前StringBuffer的缓冲区中的所有字符串为内容的新的 String对象的引用。 4: String 对象可以用 操作符 "+ " 进行连接 StringBuffer 不能 追问: 我懂了String sql =“hello word”;相当于String创建以后就有了空的字符,然后将字符串“hello word”赋值给它,得到新的字符串。StringBuffer类的toString方法类似于把创建后的空字符串改变成新的字符串,没有重新赋值。可以这样理解吗? 回答: 简单点说用StringBuffer主要是为了对字符进行增加、插入、修改和删除操作,而String 是操作完成后用来存储字符的。就好像说一块固态(String)的金砖,你想改变的的形状就的先融化成液态(StringBuffer),等形状确定以后再变成固态(String)。这个比方并不是很恰当,不过应该更好一点理解。 补充: 你的理解只能说没错,却也不完全正确。 追问: 感谢! 回答: 不客气,互相交流一下,我现在都很少用Java了,改行学C++
string和stringBuffer有什么区别?

一、内部实现方式不同 1、String:在进行字符串处理时,会生成新的对象。2、StringBuffer:在进行字符串处理时,不生成新的对象,在内存使用上要优于串类。二、使用情况不同 1、String:用在固定的字符串,不经常对字符串进行更改的情况。2、StringBuffer:经常需要对一个字符串进行修改,例如插入,删...

String类和StringBuffer类的区别

String与StringBuffer的区别 String:在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。1)StringBuffer:StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBu...

string与stringbuffer区别

string与stringbuffer区别是:在java语言中,String是不可变类,String对象一旦被创建,其值不能被改变,而StirngBuffer是可变类,当对象被创建后,仍然可以对其值进行修改。Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和...

String类和StringBuffer类的主要差别是什么?写出互相间转换所用的函数...

总结区分的原因:String是字符串常量,一旦创建就不能修改;StringBuffer和StringBuilder是字符串可变量,可以修改,但是StringBuffer是线程安全的,StringBuilder是线程不安全的。选择方法:如果很少修改,使用String,毕竟它最简单;如果经常修改,且是单线程,使用StringBuilder;(实际上,StringBuilder是我们最常用...

String类和StringBuffer类的区别

但是有一个最显著的区别在于,对于StringBuffer对象的每次修改都会改变对象自身,这点是和String类最大的区别。另外由于StringBuffer是线程安全的,所以在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。1、StringBuffer对象的初始化 StringBuffer对象的初始化不像String类的...

string和stringbuffer和stringbuilder的区别

string和stringbuffer和stringbuilder的区别如下:1、线程安全:StringBuffer:线程安全,StringBuilder:线程不安全。因为StringBuffer的所有公开方法都是synchronized修饰的,StringBuilder并没有StringBuilder修饰。2、缓冲区:StringBuffer每次获取toString都会直接使用缓存区的toStringCache值来构造一个字符串。而...

string和stringbuffer类的区别

String与StringBuffer的区别 简单地说,就是一个变量和常量的关系。StringBuffer对象的内容可以修改;而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象。StringBuffer 的内部实现方式和String不同,StringBuffer在进行字符串处理时,不生成新的对象,在内存使用上要优于String类。所以在实际使用 ...

string和stringbuffer和stringbuilder的区别是什么?

string和stringbuffer和stringbuilder的区别 1、String是字符串常量,而StringBuffer和StringBuilder是字符串变量。由String创建的字符内容是不可改变的,而由StringBuffer和StringBuidler创建的字符内容是可以改变的。2、StringBuffer是线程安全的,而StringBuilder是非线程安全的。StringBuilder是从JDK 5开始,为String...

String 与StringBuilder有什么区别

两者的区别:1. string 对象时恒定不变的,stringBuider对象表示的字符串是可变的。stringBuilder是.net提供的动态创建string的高效方式,以克服string对象恒定性带来的性能影响。2. 对于简单的字符串连接操作,在性能上stringBuilder并不一定总是优于string。因为stringBuider对象创建代价较大,在字符串目标连接...

String类和StringBuffer类的区别

首先,String和StringBuffer主要有2个区别:(1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringBuffer类对象为可修改对象,可以通过append()方法来修改值 (2)String类对象的性能远不如StringBuffer类。关于以上具体解释如下:在java中有3个...

StringBuffer stringbuffer怎么用 StringBuffer的包 StringBuilder 有什么区别 javastringbuffer stringbuffer详解 stringbuffer截取 string.valueof
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
夫妻之间有救助义务吗法律上该如何规定 婚姻法中规定了夫妻之间的扶养义务吗 烘培西点有什么常用方法? 常见的西点制作方法有哪些? 电池电量没用完就冲电,电池会坏掉吗? mp3充久了电会充坏吗? 佛山西到昆明南的D3842途经哪些站,佛山去昆明旅游攻略路线 自贡檀木林小学育人方针 显示的是请输入正确的联通手机号 心肺复苏具体操作步骤心肺复苏心脏按压点 怎么调试路由器? String 和StringBuffer的区别是什么? string和stringbuffer和stringbuilder的区别是什么? 垃圾分类公司政府招标合法吗? 贵阳市垃圾分类文件精神是什么? 如何开一家垃圾分类公司 垃圾分类的计划书 道路清洁的标书范本哪位有,最好是很长的那种, 求一份垃圾分类服务的投标书 精液的标准颜色 精子有多种颜色吗? 正常的精子是什么颜色的啊 正常男人的精液应该是什么颜色的? web端和pc端的区别? 志高空调上出现FC是什么意思 精子正常颜色是什么颜色 精子有多少种颜色 精子有多少种颜色的? 男人正常精液的颜色 web端是什么意思? 路由器怎么调试? String和StringBuffer的区别在哪里? 怎样调试路由器 我要自学网花钱值得吗 路由器自己调试 简单吗 登录我要自学网这个软件安全吗? String 与StringBuffer的区别? 请说详细点,最好用内存分析解释_百度... 路由器怎么调试的 我要自学网什么时候有优惠 string 和stringbuilder的区别.stringbuilder和stringbuffer的区别 Java中String,StringBuilder和StringBuffer的区别 路由器怎么安装调试? 联通的路由器怎么调试? “String、StringBuffer和StringBuilder”之间的区别是什么? 我要自学网给个 电脑版链接谢谢 JAVA中StringBuffer与StringBuilder、String的区别是什么? 怎样调试路由器? string和stringbuffer,stringbuilder的区别 我要自学网课程视频需要v币,它是每个视频都需要1v币吗,还是说有的需要1v币,有的需要3v币 请问路由器的调试方法