不可变的String
为什么String不可变??
比如 str = “abc” str1=“abc”
虽然变量名不同,但是内容是一样的。string为了设计节省空间,就会把内容一样的指向统一内存地址,那样就不要多开销内存了。
查看string源码会发现 string 其实是一个char[] 数组,而且使用了private和final修饰。
stringBuffer 和StringBuilder
StringBuilder 不是线程安全的。
StringBuffer 是线程安全的,因为大多数方法都使用了synchronized关键字。
但是性能都速度的话 StringBuilder 比StringBuffer 更快。