一、三者特点:
- String:不可变字符串、字符串是常量、创建后不可更改
- StringBuffer:可变字符串、线程安全、做线程同步检查、效率慢
- StringBuilder:可变字符串、线程不安全、不做线程同步检查、效率快
- StringBuffer、StringBuilder两者常用方法:
1.append() 2.insert() 3.delete() 4.deleteCharAt()
二、StringBuffer与StringBuilder的区别:
- 因为StringBuffer所有的公开方法是用synchronized修饰的,所以线程安全,但效率慢,而StringBuilder的公开方法没有被synchronized修饰。
- StringBuffer适用于在多线程操作同一个StringBuffer的场景,而StringBuilder适用于在单线程场合操作。
StringBuffer | StringBuilder |
线程安全 | 非线程安全 |
线程同步 | 非线程同步 |
始于Java1.0 | 始于Java1.5 |
效率慢 | 效率快 |
- 注意事项:
用循环进行字符串拼接时要用StringBuilder,千万不能用String。
原因:String为不可变字符串,每添加一个字符就是创建一个对象,大大消耗内存和运行时间。
---end---
扫描下方二维码
添加好友,备注【交流】
可私聊相互学习,共同进步,资源共享