java源码解析之String(二)

    关于String,上一个部分看了它大致的一个构成,以及这个类的一些基本的方法等。   这一篇主要是看看它的一个扩展,StringBuffer和StringBuilder。 


    收获是知道了两个关键的方法,append和 insert。 


    它继承了一个抽象基类。  因此去看看它的抽象类。


append方法的实现,貌似只只做了一个扩容动作。 


它的一个组成结构,跟String还是有几分相像的,最大的不同之处在于这儿可以扩容。 


貌似也只是做了一个初始化容量的操作。 


    扩容的实现。 


    insert方法,不仅实现了扩容,也实现了内容的变更。 


    由于该类中实现了很多的方法,都是对某个或者某些方法的多态实现,因此就没有一一贴出来。 

    可以看到它完成了大部分的基础操作,然后提供给低层使用,包括了StirngBuffer和 StringBuilder。 

    接下来看的是StirngBuffer。 


    比较重要的是,java世界中,字符串的拼接默认是通过StringBuilder实现的,因为它是非线程安全的,具有更高的效率。 


    由于它也是继承自与StringBuilder同一个抽象类,因此它的方法跟StringBuilder几乎一样,只是加上了线程并发的同步锁。  因此也没有继续看了。 

    也因此String系列的内容就到这。   由于它内部涉及到了正则的依赖,而正则也是再自己的学习计划中,因此顺带着也将正则大体看了下,但是由于正则算是一个比较大的内容,因此就不在String章节里观看,而是选择另开一篇。  也就是下一个部分的内容。 


猜你喜欢

转载自blog.csdn.net/qq_36285943/article/details/80331251