String、StringBuilder、StringBuffe
作者:
_JYN_ | 来源:发表于
2022-05-21 17:56 被阅读0次讲在前面
- 如果要对字符串进行频繁的修改,应采用StringBuilder或StringBuffer类
- 两者不同体现在StringBuffer类是线程安全的,StringBuilder不是
- 线程安全是有成本的,影响性能,字符串对象及操作大部分情况下不存在线程安全问题,适合使用StringBuilder类
public static void main(String args[]){
//基本用法
StringBuilder sb = new StringBuilder();
//通过append方法添加字符串
sb.append("周末也要学习");
sb.append(",提升只争朝夕");
//通过toString方法获取构建后的字符串
System.out.println(sb.toString());
//String可以直接使用+和+=运算符,java编译器一般会生成StringBuilder,+和+=操作会转换为append,例如
String hello = "hello";
//这里会转换为 StringBuilder hello = new StringBuilder("hello")
hello += ",world";
//这里会转换为 hello.append(",world")
System.out.println(hello);
//这里会转换为 System.out.println(hello.toString());
//简单情况下可以直接使用String的+和+=,但对于复杂情况,尤其是有循环的时候,应该直接使用StringBuilder,例如
String hi = "hello";
for(int i=0; i<3; i++){
hi += ",world";
//这里相当于:
//StringBuilder sb = new StringBuilder(hi);
//sb.append(", world");
//hi = sb.toString();
//在for循环中会生成过多的StringBuilder
}
System.out.println(hi);
//重新写一下
StringBuilder hi_again = new StringBuilder("一定要多多");
for(int j=0; j<3; j++){
hi_again.append("练习");
}
System.out.println(hi_again.toString());
}
本文标题:String、StringBuilder、StringBuffe
本文链接:https://www.haomeiwen.com/subject/mpditktx.html
网友评论