String通过源码可以看到,是通过字符数组来保存一个对象的,如果频繁更改,效率十分的低下。浪费空间,相当于每一次String操作就会产生新的字符数组对象。
如果在String前面加上final修饰符,代表这个String是不可变的,就可以理解为这个String是安全的,
StringBuilder是线程不安全带的,
而StringBuffer是线程安全的,可以从源码里看出,StringBuffer在调用方法前面加上了Synchronized,线程锁,所以可以说它是线程安全的。
String通过源码可以看到,是通过字符数组来保存一个对象的,如果频繁更改,效率十分的低下。浪费空间,相当于每一次String操作就会产生新的字符数组对象。
如果在String前面加上final修饰符,代表这个String是不可变的,就可以理解为这个String是安全的,
StringBuilder是线程不安全带的,
而StringBuffer是线程安全的,可以从源码里看出,StringBuffer在调用方法前面加上了Synchronized,线程锁,所以可以说它是线程安全的。