纵骑横飞 章仕烜   昨天比较忙 今天把StringBuffer StringBulider的源码分析 献上   在讲 StringBuffer StringBuilder 之前 ,我们先看一下 它们共同的老祖宗 AbstractStringBuilder 这是 StringBuilder StringBuffer 的根基 再看看 这两个实现类 里边有什么   很显然,这两个东西什么都没写吧   我们看看 另一个门派的 String   看出 为什么 我们说String 对象是不可变的 St…
  String     /** The value is used for character storage. */     private final char value[];  /** The offset is the first index of the storage that is used. */     private final int offset;  //第一个元素       /** The count is the number of characters in…
[源码分析]StringBuffer StringBuffer是继承自AbstractStringBuilder的. 这里附上另外两篇文章的连接: AbstractStringBuilder : http://www.cnblogs.com/noKing/p/9427967.html StringBuilder : http://www.cnblogs.com/noKing/p/jdk8_StringBuilder.html 构造器 我每篇文章都说. 请忽略我的"My". 我copy了…
String源码:基于jdk1.8 public final class String implements Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char[] value; /** Cache the hash code for the string */ private int hash; public St…
一 概述 StringBuffer类被 final 所修饰,不能被继承,StringBuffer继承了AbstractStringBuilder类, 是一个可变的字符序列,并且类中方法都有synchronized修饰,实现了线程安全 StringBuilder类也被final修饰,继承了AbstractStringBuilder类,与StringBuffer区别是没有实现线程安全,方法逻辑都是调用的父类方法逻辑 二 StringBuffer源码解析 大部分方法都调用super父类逻辑,所以这里只…
最近在研究java的源代码,但是由于自己英语水平有限,所以想使用中文注释的方式把源码里的方法全部重写 一遍,下面是楼主整理出来的一小部分.我把整体的项目托管到GitHub上了,欢迎大家前去交流学习. GitHub : https://github.com/15128928804/yuanMa /** * @Author:zhuangfei * @Description:初始化一个新的 String 对象用来表示一个空的字符序列. * 注意,这个构造方法是没有使用的必要的,因为字符串是不可变的 *…
public final class StringBuffer extends AbstractStringBuilder implements java.io.Serializable, CharSequence /** * A cache of the last value returned by toString. Cleared * whenever the StringBuffer is modified. */ private transient char[] toStringCac…
我们先要记住三者的特征: String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全) 一.定义 查看 API 会发现,String.StringBuffer.StringBuilder 都实现了 CharSequence 接口,内部都是用一个char数组实现,虽然它们都与字符串相关,但是其处理机制不同. String:是不可改变的量,也就是创建后就不能在修改了. StringBuffer:是一个可变字符串序列,它与 Strin…
最近指导几位新人,学习了一下String,StringBuffer和StringBuilder类,从反馈的结果来看,总体感觉学习的深度不够,没有读出东西.其实,JDK的源码是越读越有味的.下面总结一下我读这些源码的收获吧. 注意:虽然源码的版本是JDK6,但是个人觉得学习这个版本的源码对于理解数据结构非常有帮助,因为String就是一个数据结构,它是char []的封装,实现了很多对char []的操作 第一部分:String源码解析 (1)String实现了CharSequence接口,这个接…
String,StringBuffer,StringBuilder的区别这个问题几乎是面试必问的题,这里做了一些总结: 1.先来分析一下这三个类之间的关系 乍一看它们都是用于处理字符串的java类,而且长得也都差不多,相信肯定有人会以为StringBuffer和StringBuilder都是继承自String这个类,即认为String类是其他两个类的超类.这种想法似乎很合理,但其实是不对的,事实上StringBuffer和StringBuilder确实是继承自某个类,但是这个类并不是String…