StringBuilder与StringBuffer区分记忆
由于标题长度有限,所以其实是想讲一下 StringBuilder 与 StringBuffer 关于如何区分记忆其线程安全性。
众所周知, StringBuffer 是线程安全的,因为内部有加锁,而StringBuilder则是非线程安全的,两者的线程安全性我经常分不清。
今天,在用到 StringBuilder 的 append 方法时,才知道原来它可以这样:
StringBuilder sb = new StringBuilder(); sb.append(1).append(2);
这个其实是设计模式里面的 Builder 模式,跟类名 StringBuilder 相呼应,那么记忆它们的线程安全性就比较简单了,
StringBuilder 突出其内部实现的 Builder 模式,所以它不具备线程安全性。(这个因果逻辑有点牵强,但是只是为了帮助记忆)。
相对应地, StringBuffer 就是线程安全的了。
#笔试题目#