StringBuild,StringBuffer背后的爷们AbstractStringBuilder和CharSequence

学建造者模式,StringBuild是建造者的实际运用,StringBuild继承AbstractStringBuilder,AbstractStringBuilder实现CharSequence接口。

CharSequence的子类有3个,String,StringBuild,StringBuffer,CharSequence是一个接口,但是他的方法都是抽象方法,eclipse上的图标 A表示抽象的。

接口定义了什么?

length(),char charAt(int index),CharSequence subSequence(int start, int end)大家都熟知的方法

最牛逼的是AbstractStringBuilder定义的append,insert方法里面什么参数都有,见下图

StringBuild,StringBuffer背后的爷们AbstractStringBuilder和CharSequenceStringBuild,StringBuffer背后的爷们AbstractStringBuilder和CharSequence

回想下,菜鸟教程中的建造者模式,https://www.runoob.com/design-pattern/builder-pattern.html

抽象的item,Packing接口,实现返回一个类型,建造者模式,目的也就是new对象,抽象类定义了创建对象的步骤,AbstractStringBuilder也定义了append的各种写法,看了底层代码才发现世界的精彩,逻辑非常严谨。

insert和append的用法,insert是插在制定位置前,append插在字符串最后。

抽象的两个子类StringBuilder,StringBuffer,同样的方法,写成两种了。StringBuffer相比build好在线程安全,重写父类的方法都加了synchronized,synchronized