JAVA平台有两个类: String和StringBuffer,可以存储和操作字符串(包含多个字符的字符数据)。 此String类提供了一个不能更改数字的字符串。
修改此StringBuffer类提供的字符串。 DDY可以在知道字符数据会发生变化时使用字符串缓冲器。 典型地,可以使用StringBuffers动态构建字符数据。
java有三个类负责操作字符。
1.Character执行单个字符操作,
2.String操作一系列字符。 不变系。
3.StringBuffer也处理一系列字符,但它是可变类。
String:
对象不是原始类型。
对于不可变对象,一旦创建,就无法更改值。
要修改现有的字符串对象,请重新创建新对象,然后保存新值。
String是final类,不能继承。
StringBuffer:
修改他时不像字符串那样重新创建对象的可变对象
只能用构造函数创建
StringBuffer sb=new StringBuffer (;
note:不能用价值标志向他支付价值
sb='welcome to here!' ; //error
创建对象后,将为内存分配内存空间,并首先将null .保存到StringBuffer中
支付中位数时可以通过其append方法
sb.append(Hello );
以上是摘录,在网上很常见,以下是自己添加的见解:
地址不能更改。 长度和内容可以变更。 append ) )方法是附加的,当超过保留内存时,内存将加倍。
比较:字符串缓冲区高于字符串。 因为StringBuffer中一直有保留空间,所以只需对一个对象执行操作。 不能修改字符串。 只能重复创建和修改对象。 如果经常添加、替换、修改、插入和删除——个字符串,建议使用字符串缓冲器。 如果需要使用String,可以使用StringBuffer调用toString ()并将其转换为String。
代码为以下: publicstaticvoidmain (字符串[ ] args ) :
字符串a=' ';
long begin=system.current time millis (;
for(intI=0; i 10000; I ) {
a=i;
}
longend=system.current time millis (;
system.out.println('string运行时: ' ((结束- begin ) );
system.out.println (---------);
StringBuffer b=new StringBuffer (;
long begin2=system.current time millis (;
for(intI=0; i 10000; I ) {
b.append(I;
}
longend2=system.current time millis (;
system.out.println (' string buffer执行时间: ' ((end2-begin2) );
}
我的机器是垃圾,执行的结果
String运行时间: 164593
----------------- -
字符串缓冲器运行时间: 31
而且String有contains方法,而StringBuffer没有。 从包含contains的意义上来说,在这里可以想起contains方法
代码为以下: publicstaticvoidmain (字符串[ ] args ) :
字符串a=' ABC ';
Booleanstr=a.contains('b );
system.out.println(str;
}
执行结果是
真的