学习的过程中,会有很多不起眼的小的容易犯错的知识点,但是不能因为它小就不在意呀!
1. String
String 是字符串常量,而 StringBuilder 和 StringBuffer 均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但是后两者的对象是变量,是可以被修改的。
2. StringBuilder 与StringBuffer
StringBuilder 是线程不安全的,而StringBuffer是线程安全的。为什么这么说呢,看源码啊!!!
下面随便贴一小段源码大家就清楚了!
先看 StringBuffer的源码
看到红色框框了吗,打开它的源码可以看到大量的方法加了synchronized关键字,所以当然是线程安全的了!
再看StringBuilder 的源码
没有加synchronized关键字哦。
总结
- String: 字符串常量
- StringBuilder:线程不安全
- StringBuffer:线程安全