朋友们有没有发现一个问题,看了网上的这么多文章,如果自己不去动手去写一写,去真正的总结,那么用不了多久,就忘掉了这些知识点,本人实在是一个笨鸟,所以想去自己记录一番,真正的去学习些知识,哈哈!
话不多说,今天就让我们一起学习一些,常用的基础知识吧!
一、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
虽然写的不多,但是这些都是笨鸟本人的一些理解,希望各位技术大佬和一同学习的朋友们,多多指导,毕竟是本人的第一篇技术总结分享!感谢,感谢!