String、StringBuffer 和 StringBuilder

String、StringBuffer 和 StringBuilder

先看一下它们自己的构造和源码
这里写图片描述


String

public final class String
implements java.io.Serializable, Comparable, CharSequence

StringBuilder

public final class StringBuilder extends AbstractStringBuilder
implements java.io.Serializable, CharSequence

StringBuffer

public final class StringBuffer extends AbstractStringBuilder
implements java.io.Serializable, CharSequence

从源码可以看出来它们都是被final修饰的类所以它们都是不可以改变的 ,Comparable接口有compareTo(String s)方法,CharSequence接口有length(),charAt(int index),subSequence(int start,int end)方法。
String 其实是基于字符数组 char[] 实现的
AbstractStringBuilder是个抽象类 StringBuffer 和 StringBuilder 的具体操作都是由 AbstractStringBuilder 来实现的
StringBuilder是在 JDK 5 中才出现的,相比String,StringBuilder出来较晚。
JDK 8 以后,StringBuffer 是加了用transient 关键字修饰的 toStringCache 缓存字段,
被transient 关键字修饰过的属性,是不会被序列化的,换句话来说,就是这个字段只会存在于内存之中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值