Android:基础知识学习(String、StringBuffer和StringBuilder区别)

朋友们有没有发现一个问题,看了网上的这么多文章,如果自己不去动手去写一写,去真正的总结,那么用不了多久,就忘掉了这些知识点,本人实在是一个笨鸟,所以想去自己记录一番,真正的去学习些知识,哈哈!

话不多说,今天就让我们一起学习一些,常用的基础知识吧!

一、String

String作为字符串常量,相信大家都不陌生,相比较StringBuffer和StringBuilder而言,它是不可变对象,因为String类使用的是字符数组保存字符串,如:private final char value[ ],因为有了final进行了修饰,所以String对象是不可变的。

对于线程安全而言,String作为字符串常量,String对象是不可变的,显然它线程是安全的。

二、StringBuffer

StringBuffer继承自AbstractStringBuilder类,而这个类是为了解决大量的拼接字符串时产生很多中间对象问题,它的本质是一个线程安全的可变的字符序列,底层是可修改的char value[ ],它对调用的方法加入了synchronized,进行了同步,保证了线程安全的前提下,耗费了一些性能上的代价。

三、StringBuilder

StringBuilder同样继承自AbstractStringBuilder类,它和StringBuffer本质上没有什么太大的区别,区别就在于,它放弃了线程安全的部分,放弃了同步锁,减少了对性能的开销。

对于效率使用方面,个人才疏学浅,只能总结出大部分情况下,StringBuilder>StringBuffer>String

虽然写的不多,但是这些都是笨鸟本人的一些理解,希望各位技术大佬和一同学习的朋友们,多多指导,毕竟是本人的第一篇技术总结分享!感谢,感谢!

你可能感兴趣的:(Android:基础知识学习(String、StringBuffer和StringBuilder区别))