黑马程序员技术交流社区
标题:
没网太难了,,string和stringbuffer
[打印本页]
作者:
TS__likewise
时间:
2014-6-9 12:48
标题:
没网太难了,,string和stringbuffer
StringBuffer sb = new StringBuffer();
sb = "welcome to here!";
String str = new String("welcome to ");
str += "here";
感觉string和stringbuffer用起来都差不多,在编程的时候,选择用哪个更好?有什么区别吗
作者:
never615
时间:
2014-6-9 13:05
StringBuffer是字符串缓冲区。
是一个容器。
特点:
1,长度是可变化的。
2,可以字节操作多个数据类型。
3,最终会通过toString方法变成字符串。
提供了比较实用的方法,
比如,你可以做个练习 用用就知道了
"12 0 99 -7 30 4 100 13"
要求对字符串中的数值进行排序。生成一个数值从小到大新字符串。
"-7 0 4 12 13 30 99 100"
作者:
xiazhixing
时间:
2014-6-9 13:07
String定义完后是不可变的
作者:
123_yaya
时间:
2014-6-9 13:40
之前也遇过这个问题。给你看我的总结,差不多是百度的。
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
作者:
axuan
时间:
2014-6-9 16:11
public class Test
{
public static void main(String[] args)
{
//从创建方式区别:
String str1=new String("hello");
String str2="hello";
StringBuffer sb=new StringBuffer("hello");
//从连接字符串上看
str1+="你好"; //实际上是先转换成StringBuffer对象,在执行append方法
sb.append("你好");
//从使用方式的简单性看
//sb.
//从执行时间上看(效率)
long strTime1=System.currentTimeMillis();
for(int i=1;i<5000;i++)
{
str1+=i;
}
long strTime2=System.currentTimeMillis();
long sbTime1=System.currentTimeMillis();
for(int i=1;i<5000;i++)
{
sb.append(i);
}
long sbTime2=System.currentTimeMillis();
System.out.println("str连接字串时间大约:"+(strTime2-strTime1));
System.out.println("sb连接字串时间大约:"+(sbTime2-sbTime1));
}
}
无标题.png
(216.45 KB, 下载次数: 14)
下载附件
2014-6-9 16:11 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2