针对当前热议的string和stringbuffer和stringbuilder的区别是什么?话题,我们进行了深入调研和信息整合 ,力求为您呈现全面客观的内容分析。
string和stringbuffer和stringbuilder的区别
1、String是字符串常量,而StringBuffer和StringBuilder是字符串变量 。由String创建的字符内容是不可改变的,而由StringBuffer和StringBuidler创建的字符内容是可以改变的。
2、StringBuffer是线程安全的 ,而StringBuilder是非线程安全的。StringBuilder是从JDK 5开始,为StringBuffer类补充的一个单线程的等价类 。我们在使用时应优先考虑使用StringBuilder,因为它支持StringBuffer的所有操作 ,但是因为它不执行同步,不会有线程安全带来额外的系统消耗,所以速度更快。
String 、StringBuilder、StringBuffer共同之处
1、都是字符处理类。
2 、来自java.lang包 。
3、都实现了接口java.io.Serializable, CharSequence。
4、都是final class不能被继承。
string和stringbuffer和stringbuilder的区别:1 、可变与不可变2、初始化方式3、字符串修改方式4 、是否实现了equals方法5、是否实现了hashCode方法
1、可变与不可变
String类是一个不可变类 ,即创建String对象后,该对象中的字符串是不可改变的,直到这个对象被销毁 。StringBuffer与StringBuilder都继承自AbstractStringBuilder类 ,在AbstractStringBuilder中也是使用字符数组保存字符串,是可变类。
2 、初始化方式
当创建String对象时,可以利用构造方法String str = new String("Java")的方式来对其进行初始化,也可以直接用赋值的方式String s = "Java"来初始化。
3、字符串修改方式
String字符串修改方法是首先创建一个StringBuffer ,其次调用StringBuffer的append方法,最后调用StringBuffer的toString()方法把结果返回
4、是否实现了equals方法
String实现了equals()方法和hashCode()方法,new String("java").equals(new String("java"))的结果为true;
5、是否实现了hashCode方法
而StringBuffer没有实现equals()方法和hashCode()方法 ,
关于string和stringbuffer和stringbuilder的区别是什么?的相关内容介绍到此告一段落,若这些信息对您有所启发,欢迎持续关注本站获取更多优质内容 。
评论列表(3条)
我是比克号的签约作者“比克号”
本文概览:针对当前热议的string和stringbuffer和stringbuilder的区别是什么?话题,我们进行了深入调研和信息整合,力求为您呈现全面客观的内容分析。string...
文章不错《string和stringbuffer和stringbuilder的区别是什么?》内容很有帮助