string和stringbuffer和stringbuilder的区别
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()方法,