java源码分析(5)-StringBuilder
来源:互联网 发布:社交大数据 编辑:程序博客网 时间:2024/06/08 15:15
StringBuilder
1.StringBuilder类
StringBuilder类由final修饰,不能被继承,并且继承了AbstractStringBuilder类,并完成了toString方法,同时使用了AbstractStringBuilder类中大量的方法。
public final class StringBuilder extends AbstractStringBuilder implements java.io.Serializable, CharSequence{ public StringBuilder() {super(16);//StringBuilder的默认原始容量为16 } public StringBuilder(int capacity) {super(capacity); } public StringBuilder(String str) {super(str.length() + 16);//new StringBulider时传入一个字符串,则容量为字符串长度+16append(str); } public StringBuilder(CharSequence seq) { this(seq.length() + 16); append(seq); }
2.append()
StringBuilder中的append方法基本都是直接调用父类AbstractStringBuilder中的方法,代码在AbstractStringBuilder中已经分析过,不再分析。但要注意的是StringBuilder中append方法全部都为线程不安全,是牺牲了安全用以实现性能。若需要考虑线程的安全性,建议使用StringBuffer。
3.序列化与反序列化
writeObject方法用于将对象序列化,由代码可见,写入了count和value。
readObject方法用于反序列化,将count和value属性读取出来
private void writeObject(java.io.ObjectOutputStream s) throws java.io.IOException { s.defaultWriteObject(); s.writeInt(count);//写入count属性 s.writeObject(value);//写入value属性 } private void readObject(java.io.ObjectInputStream s) throws java.io.IOException, ClassNotFoundException { s.defaultReadObject(); count = s.readInt();//读取count属性 value = (char[]) s.readObject();//读取value属性 }
1 0
- java源码分析(5)-StringBuilder
- Java源码分析--StringBuffer/StringBuilder
- Java StringBuffer & StringBuilder 源码分析
- Java源码分析(一)为什么要使用StringBuilder
- StringBuilder StringBuffer String的区别(源码分析)-java
- 深入java String拼接和StringBuffer、StringBuilder(分析源码)
- Java StringBuilder 和 StringBuffer 源码分析
- Java源码分析之StringBuilder,StringBuffer
- Java StringBuilder和StringBuffer源码分析
- StringBuilder源码分析
- StringBuilder源码分析
- StringBuffer、StringBuilder源码分析
- Java字符串:StringBuilder使用详解及源码分析
- 【java】StringBuilder 源码学习
- StringBuilder append方法源码分析
- StringBuilder和StringBuffer源码分析
- StringBuffer,StringBuilder(java基础毕老师的源码)
- Java StringBuilder & StringBuffer 源代码分析
- nodejs中npm常用命令
- DB2批量跑sql文件
- Oracle:记录被另一个用户锁住
- 杂记录---sift学习
- Android:screenOrientation设定屏幕旋转方向
- java源码分析(5)-StringBuilder
- 设计模式学习(2)
- JVM理解其实并不难!
- OpenglES2.0 for Android:来画个矩形吧
- 将数据划分为训练数据及测试数据(div_train_val.py 解析)
- 【公司简介】之腾讯
- No such file or directory: 解决方法
- Android中颜色的设置
- 浏览器跟js交互、NPAPI之NPRuntime开发