java源码解析之String(二)

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

《java源码解析之String(二)》

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

《java源码解析之String(二)》

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

《java源码解析之String(二)》

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

《java源码解析之String(二)》

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

《java源码解析之String(二)》

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

《java源码解析之String(二)》

    扩容的实现。 

《java源码解析之String(二)》

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

《java源码解析之String(二)》

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

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

    接下来看的是StirngBuffer。 

《java源码解析之String(二)》

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

《java源码解析之String(二)》

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

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

 

    原文作者:java源码分析
    原文地址: https://blog.csdn.net/qq_36285943/article/details/80331251
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞