String 和 StringBuffer

String 和 StringBuffer
1、String是不可变对象
java.lang.String使用的是final修饰,不能被继承,就保证了它的方法不能被重写。
字符串底层封装了字符数组及针对字符数组的操作算法。
字符串一旦创建,对象就永远无法改变,但是可以重写赋值。???
java字符串在内存中采用Unicode编码方式,任何一个字符对应两个字节的定长编码。

2、String常量池
java为了提高性能,静态字符串(字面量,常量,常量连接的结果) 在常量池中创建,并且尽量的使用同一个对象,
重用静态字符串。
对于重复出现的字符串直接量,JVM会首先在池中进行查找,如果存在就返回这个对象,如果没有,就创建一下,
并放在池中。

3、内存编码和长度
String在内存中采用Unicode编码,每一个字符占用两个字节长度,任何形式的字符(无论是中文还是英文),
都算一个字符长度,占用两个字节。

4、indexOf实现检索
indexOf方法用于实现在字符串中检索另一个字符串,返回int
String提供的几个重载的indexOf方法
int indexOf(String str):
在当前字符串中检索str,返回其第一次出现的位置的下标,如果没有就返回-1

int indexOf(String str,int fromIndex):
在当前字符串中检索str,从下标为fromIndex的位置开始,返回其第一次出现的位置的下标,如果没有就返回-1

String还定义了lastIndexOf方法
int lastIndexOf(String str,int from):
返回指定字符串在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。

int lastIndexOf(int ch):
返回指定字符在此字符串中最后一次出现处的索引

5、subString(前包括,后不包括)
返回当前字符串的子字符串
String subString(int beginIndex,int endIndex):
返回字符串从指定下标到指定下标的子字符串

String subString(int beginIndex):
返回字符串从指定下标到结尾的子字符串

6、trim:去除一个字符串的前导和后继空字符串
7、charAt:
char charAt(int index):返回字符串指定位置的字符,index表示指定下标位置

8、startsWith和endsWith:
检测一个字符串是否以指定的字符串开头或者结尾

9、大小写转化

10、valueOf:
将其他类型转换成字符串类型

StringBuilder封装的是可变的字符串,对象创建后可以通过调用方法改变其字符串序列(内容)
有如下常用构造:
public StringBuilder()
public StringBuilder(String str)
常用方法:
StringBuilder append(String str) 追加字符串
StringBuilder insert(int dstOffset,String str) 插入字符串
StringBuilder delete(int start,int end) 删除字符串
StringBuilder replace(int start,int end,String str) 替换字符串
StringBuilder reverse() 字符串反转
StringBuilder的很多方法的返回值都是StringBuilder类型,这些方法的返回值语句都是:return this

任务:查找资料,API去学习 StringBuffer,和StringBuilder的区别
也就是说:在实际的开发中,如何进行选择使用(String StringBuilder StringBuffer)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值