String,StringBuffer与StringBuilder的比较

共同点:

1 都是字符串相关,底层的实现都是char数组

2 类都是final的,意味着不可以被继承

区别:

String的value数组是private final的,这意味者他的值是不可以被修改的。而StringBuffer StringBuilder都是继承AbstractStringBuilder的,他们的value数组都可以通过数组进行修改。在修改之前会检测数组的大小是否能容纳下,如果不能,那么会进行扩容(这点与ArrayList是一致的,区别在于ArrayList扩容1.5倍,而StringBuilder的大小刚好满足存放)。

StringBuffer是线程安全的(通过给方法加全局锁),而StringBuilder是线程不安全的。

发布了40 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_41332728/article/details/101117871
今日推荐