java 问题:String类和 Bufstring类的区别是啥?谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 问题:String类和 Bufstring类的区别是啥?谢谢相关的知识,希望对你有一定的参考价值。

java 问题:String类和 Bufstring类的区别是什么?谢谢

更准确的说:String s 中的值是不可改变的,当你改的时候,程序在堆栈中又分配了一个地址来存放它;S只是在堆栈中指向了另一个地址;可前一个值并没有改变,那我们就要问了,前一个值现在是什么状态呢?答案是在等待JVM回收;
String Buffer对String进行了补充,什么意思呢?就是可对字符串进行增删改查;当然,这对分配内存一点影响都没有,因为操作的是同一个值,不存在重新分配的问题,而且String Buffer是对流来操作,当然就没有内存问题了,总体来说String Buffer比String类执行效率要高很多,不过操作稍微复杂一点;这得看是程序要实现什么功能来选择的,如果你要对同一个字符串进行多次操作,String Buffer当然是最好的选择,如果不是,那String是首选,毕竟String更方便些!
参考技术A String 和StringBuffer的区别
JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。
参考技术B String类是一个final类,它的值不能被改变.
BufferString类的值是可以改变的,如果有多个字符串连接用它最好.如果用String,就会在内在中生成多个String类,对资源是一种浪费.
参考技术C String类型的变量所指向的值是不能改变的,而StringBuffer类型的变量所指向的值是可以改变的.
例如: String s = "hello world"; s = "I love you"; System.out.print(s); StringBuffer a = "I am a"; a = "I am b"; System.out.print(b);
最后打印的结果 s的值为 hello world , a的值为 I am b
参考技术D 可变字符串与不可变字符串 第5个回答  2007-08-19 完全正确!~!~
我也学到了!

以上是关于java 问题:String类和 Bufstring类的区别是啥?谢谢的主要内容,如果未能解决你的问题,请参考以下文章

Java基础 -- String 类和常量池String s1 = new String(“abc”)这句话创建了几个字符串对象8 种基本类型的包装类和常量池

Java (String类和StringBuffer)

java 基本数据类型包装类和String类型之间的转换

java -- Object类和String类

Java基础—API及Object类和String类

Java基础之File类和String类