小学徒成长系列—StringBuilder & StringBuffer关键源码解析
16lz
2021-01-22
在前面的博文《小学徒成长系列—String关键源码解析》和《小学徒进阶系列—JVM对String的处理》中,我们讲到了关于String的常用方法以及JVM对字符串常量String的处理。
但是在Java中,关于字符串操作的类还有两个,它们分别是StringBuilder和StringBuffer。我们先来就讲解一下String类和StringBuilder、StringBuffer的联系吧。
String、StringBuilder、StringBuffer的异同点
结合之前写的博文,我们对这三个常用的类的异同点进行分析:
异:
1>String的对象是不可变的;而StringBuilder和StringBuffer是可变的。
2>StringBuilder不是线程安全的;而StringBuffer是线程安全的
3>String中的offset,value,count都是被final修饰的不可修改的;而StringBuffer和StringBuilder中的value,count都是继承自AbstractStringBuilder类的,没有被final修饰,说明他们在运行期间是可修改的,而且没有offset变量。
同:
三个类都是被final修饰的,是不可被继承的。
StringBuilder和StringBuffer的构造方法
其实StringBuilder和StringBuffer的构造方法类型是一样的,里面都是通过调用父类的构造方法进行实现的,在这里,我主要以StringBuilder为例子讲解,StringBuffer就不重复累赘的讲啦。
1>构建一个初始容量为16的默认的字符串构建
1 public StringBuilder() { 2 super(16); 3 }
更多相关文章
- java中匹配字符串中的中文字符(含中文标点的)
- spring框架中一个跟String的trim方法一样的方法
- 当只使用get()和set()方法时,用原始类型替换AtomicBoolean?
- java中循环遍历删除List和Set集合中元素的方法
- 80端口占用异常解决方法java.net.BindException: Address alread
- java写入文件的几种方法小结
- OOP面向对象编程(一)-------方法的重载
- Java之美[从菜鸟到高手演变]之Java学习方法
- vue、react等单页面项目部署到服务器的方法及vue和react的区别