String、StringBuffer与StringBuilder的区别

String是字符串常量,拼接的时候其实是JVM生成新的字符串对象 String是字符串常量,拼接的时候其实是JVM生成新的字符串对象
效率上String<StringBuffer<StringBuilder,StringBuffer是线程安全的,StringBuilder是线程非安全的, 效率上String
当字符串缓冲区被多线程操作时,JVM不能保证StringBuilder是线程安全的,但是StringBuffer是可以安全执行的,但是大多数情况下是单线程操作,考虑到效率问题,一般都是用StringBuilder 当字符串缓冲区被多线程操作时,JVM不能保证StringBuilder是线程安全的,但是StringBuffer是可以安全执行的,但是大多数情况下是单线程操作,考虑到效率问题,一般都是用StringBuilder
对于三者使用的总结: 对于三者使用的总结:
1.如果要操作少量的数据用 = String 1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder 2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer 3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
经验分享 程序员 微信小程序 职场和发展