黑马程序员技术交流社区
标题:
java中有关字符串操作的类
[打印本页]
作者:
yedong313
时间:
2015-7-2 01:12
标题:
java中有关字符串操作的类
String、StringUtils、StringBuffe和StringBuilder都有些什么方法?他们之间有什么区别?在什么样的情况下使用?
作者:
王文辉
时间:
2015-7-2 10:12
这个你看一下它们的定义:
String、StringBuffer、StringBuilder可以储存和操作字符串,即包含多个字符的字符数据。String类表示内容不可改变的字符串。而StringBuffer、StringBuilder类表示内容可以被修改的字符串。
String覆盖了equals和hashCode方法,StringBuffer没有覆盖equals方法和hashCode方法
如果你知道字符数据要改变就使用StringBuffer。
举个例子:将1到99的数字拼接起来,形成一个字符串
StringBuffer sbf = new StringBuffer();
for(int i=1;i<=99;i++)
{
sbf.append(i);
}
上面的代码执行效率很高,只创建了一个StringBuffer对象,而用String实现相同的功能效率很低
String str = new String();
for(int i=1;i<=99;i++)
{
str = str + i;
}
因为String类是不可改变的字符串,所以创建了99个String对象
StringBuffer和StringBuilder类都表示内容可以被修改的字符串。
区别在于StringBuilder是线程不安全的,运行效率高,如果一个字符串变量是在方法里面定义,这种情况只可能有一个线程访问它,不存在不安全的因素了,则用StringBuilder。如果要在类里面定义成员变量,并且这个类的实例对象会在多线程环境下使用,那么使用StringBuffer。
作者:
Huan220_欢
时间:
2015-7-2 10:18
复习了~~~
作者:
耀阳圣尊
时间:
2015-7-2 10:43
Huan220_欢 发表于 2015-7-2 10:18
复习了~~~
String:长度是固定的。
StringBuffer:长度不是固定的。可以用append来添加元素。但是线程是安全的。
StringBuilder:长度同样不是固定的,跟StringBuffer一样,唯一不同就是线程不是安全的,说的在直白点就是运行速度比较快。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2