java语言基础 String类
1.简单介绍
java没有内置的字符串类型,使用的是标准类库的String。
java的字符串又16位Unicode编码的字符构成。
1.1编码问题
java语言在设计之初,Unicode才1.0版本,所以当时java使用了16位的UTF-16编码。
现代由于16位已经不够用,于是使用了码点,编码单元,两个概念来解决字符表不足问题。
一个码点可能等于16位(一个编码单元),也可能等于两个编码单元。
简单来说,就是16位不够,就用32位,以前的还是用16位,新来的就用32位。所以可能存在遍历字符时,会出现错误。
2.不可变的字符串
java设计者认为,字符串的共享比每次改变字符串都要重新创建对象(修改字符串,其实是另字符串引用指向别的对象),所带来的收益大。
所以在java中,字符串对象一旦创建就不能修改。
String hel = "hello";
想变成help,把lo去掉+p
String hel = hel.substring(0,3)+"p";
3.字符串判断相等
要使用equal(),不能使用等号(不想c++那样重载了==号)
4.StringBuilder
如果频繁想要"修改”字符串对象,会造成频繁创建新的字符串对象,造成资源浪费和效率底。
所以使用了StringBuilder来暂时存放String对象的集合,最后才同意拼接来创建新的字符串对象。
StringBuffer是线程安全的。
5.String类常用API
String的常用方法太多,所以要学会自己查官方API文档。