一、常用API

1. StringBuilder
可变字符串对象: 相当于一个容器,内部字符串内容可以改变,专门用于字符串操作
优势: 比String更适合字符串修改操作,效率更高,代码更简洁
构造器:
public StringBuilder(): 创建空白可变字符串对象
public StringBuilder(String str): 创建指定内容的可变字符串对象
核心方法:
append(任意类型): 添加数据并返回对象本身(支持链式编程)
reverse(): 反转内容
length(): 返回内容长度
toString(): 转换为String对象
1)拼接字符串
链式编程原理: 每个append方法返回this对象,使方法调用可以连续进行
开发习惯:
StringBuilder是拼接字符串的手段
String才是开发中的最终目的
需要将StringBuilder转换为String才能传递给大多数API方法
源码分析: append方法内部通过super.append(str)和return this实现链式调用
2)字符串拼接效率
String拼接问题:
每次拼接都创建新对象
产生大量垃圾对象
性能差(100万次拼接耗时极长)
StringBuilder优势:
基于字符数组容器操作
仅维护一个对象
性能高(100万次拼接瞬间完成)
使用建议:
频繁拼接修改时使用StringBuilder
仅定义字符串变量时使用String
3)StringBuffer与StringBuilder的区别
功能相同: 方法签名和使用方式完全一致
线程安全性:
StringBuffer是线程安全的(方法加synchronized修饰)
StringBuilder是线程不安全的
性能差异:
StringBuilder性能略优于StringBuffer
使用场景:
单线程环境优先使用StringBuilder
多线程环境考虑使用StringBuffer
默认评论
Halo系统提供的评论