Java中String、StringBuilder和StringBuffer

StringBuilder和StringBuffer内部都是通过char[]来实现的。(jdk1.9后,底层把char 数组变成了byte[]。)唯一不同的就是StringBuffer内部操作方法都加上了synchronized关键字,因为保证了线程安全,同时效率相比StringBuilder较低。

String不可变的好处:
  1.安全,由于String是不可变的,天生就具备了线程安全。
  2.String经常作为参数,String不可变,代表参数不可变。
  3.常量池的需要,String在开发中,经常被使用,常量池会对String进行缓存,只有String不可变,常量池才有意义,节约内存空间。
  4.当String作为HashMap或者其他散列表key的时候,因为String不可变,所以其hash值也不会发生改变,不需要每次去计算,可以缓存其hash值,提高Hash表的效率。

posted @ 2019-12-23 09:00  糖不甜,盐不咸  阅读(278)  评论(0编辑  收藏  举报