String、StringBuffer和StringBuilder类

概念

字符串就是一连串的字符序列,Java提供了String和StringBuffer两个类来封装字符串,并提供了一系列方法来操作字符串对象。

String类

**String类是不可变类,**即一旦一个String类对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。
特性

  1. String类是一个final类,代表不可变的字符序列。
  2. 字符串是不可变的。一个字符串对象一旦被分配,其内容是不可变的。
String a = "hello";
String b = "abc";
String c = a + b;
底层是StringBuilder sb = new StringBuilder(); sb.append(a); sb.append(b); sb是在堆中,并且append是在原来字符串的基础上追加的。
重要规则,String c1 = "ab" + "cd"; 常量相加,看的是池。String c1 = a + b,变量相加,是在堆中。  

StringBuffer类

StringBuffer对象则代表一个字符序列可变的字符串,具有append()、insert()等方法。一旦通过StringBuffer生成了最终想要的字符串,就可以调用他的toString()方法将其转化成一个String对象。

StringBuilder类

StringBuilder和StringBuffer类似,也代表了字符串对象。不同点,StringBuffer是线程安全的,StringBuilder则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先使用StringBuilder类。

String类的方法

具体参考Java API

  1. int compareTo(String anotherString)
    比较两个字符串的大小。如果字符串序列相等,返回0;不相等,从两个字符串第0个字符串开始比较,返回第一个不相等的字符差。另一种情况,如果教长字符串的前面部分恰好是较短的字符串,则返回它们的长度差。
    StringBuilder、StringBuffer有两个属性:length 和capacity,其中length属性表示其包含的字符序列的长度。可以改变。capacity表示StringBuilder的容量,capacity通常比length大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值