java中,我们常说,因为string是不可变的,所以String是线程安全的。还有,StringBuilder是线程不安全的。
我不理解,也想不出好的例子来证明这俩观点。搜了好多博客,也没搜到具体的例子,望能帮忙解答。
我知道,jvm中有个字符串池,每次string改变,都会检测字符串池,如果没有,再在字符串池中创建一个string。
可以去看StringBuilder和StringBuffer的源码啊
StringBuffer方法上都加了synchronized,StringBuilder没有,StringBuilder在多线程情况下是会出现问题。这位兄台说的是。但是线程安全 线程非安全 指的是你业务环境需要线程安全考虑不考虑。多并发 网络编程这块会考虑这些。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。