4.StringBuffer类源码解析

继承AbstractStringBuffer,我们有了前面的基础,后面再来看StringBuffer的时候其实很容易的。这篇文章和博主的第三篇关联度较大,最好先看一下第三篇。

1.

上来一个transient关键字修饰的变量,第一次见,博主查了一下,这个关键字是在序列化的时候,起作用的,要想用这个关键字,必须先实现Serilizable接口,这个关键字的作用是,在序列化的时候,被这个关键字修饰的属性不会被序列化,这个关键字只能修饰属性,不能修饰方法等别的东西,主要是有时候类中可能会涉及到一些敏感的信息比如说密码之类的东西,在序列化的时候不希望,被序列化进去,就打上这个关键字,

2.

四个构造方法,修饰父类AbstaractStringBuilder的读者,就不多说了

3.

一起来看着几个方法,很简单,都是调用改掉父类的方法,有一点值得注意的是,这几个方法,都是有synchronized方法修饰,如果不知道synchronized重型锁,博主后面会转载一篇文章做详细的介绍,但是这里你要知道这里这些方法,都是经过这个关键字修饰的,就是一个目的保证线程安全,被这个关键字修饰的属性方法,代码块,在执行的时候,同一时刻,只能有一个在执行,其他的都会阻塞。这也就是StringBuffer和StringBuiler的区别,一个是线程安全的, 一个是线程不安全的。

4.

和上面一样,方法不多介绍,就提一下多了一个synchronized关键字修复。这些方法底层都是调用了AbstactStringBuiler方法,但是博主有一点很纳闷的是,其中有几个方法没有加上synchronized 关键,如果有人知道的话留言,博主会立刻修改。

5.

重写了toString方法,返回toStringCache的内容。

7.

两个读写方法,需要注意写是线程安全的,读是随时可以读的,这两个是私有化方法,内部并没有调用。博主也不清楚为何要写这两个方法。知道的人欢迎留言。


PS:哪里不对可以在评论中指出,我都会一个个看的,觉得少东西也可以评论中提出来,我会做补充。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,146评论 0 62
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,786评论 18 399
  • 概述 AVFoundation 是一个可以用来使用和创建基于时间的视听媒体数据的框架。AVFoundation 的...
    秦明Qinmin阅读 987评论 0 5
  • 经常听到身边人在感叹“好累啊~”“生活好不容易”诸如此类。我亦平凡,也会有此类烦扰,感叹太累,感叹一直一人前行却要...
    友人四月阅读 208评论 1 2
  • 辍学日记 2017 5 18 找了个工作 在宠物店给狗洗毛 试用期一个月 但我干了半个月就跑了 钱也没挣着 红姐性...
    啦啦队跳阅读 245评论 0 0