1.String是java中常用类的一种,他表示字符串
他有两种创建方式:1.通过直接赋值的情况 数值保存在方法区的常量池中
2.通过new对象的方式 在栈中保留的变量保存的是堆中的引用,堆中开辟的内存区域保存其实也是一个内存地址,指向的是方法区中静态常量池中实际数据的内存地址
String:底层是一个字符数组,扩容机制:效率最低
StringBuffer:线程安全的,底层也是字符数组,线程安全的原因是它的实现类中所有方法都加了Sysnonaced关键字,使这些方法都是同步方法。底层扩容,效率一般,底层其实是StringBuilder,他和StringBuilder的区别就是加了Syscnices锁变成了同步方法。
StringBuilder:线程不安全的,底层是字符数组,底层扩容效率高,初始容量是16,也可以指定初始容量,默认扩容是扩容为原来的2倍+2。
String常用方法:
length(),add,delete,replace,
indexof:查询指定字符第一次出现的位置
last_indexof:查询最后一次出现的位置
contact:拼接
split:分隔正则分隔
substring:按照指定,长度
replace:替换
statwith:返回首字母
endwith:返回结尾
charat:返回指定索引的字符
trim:截取前后空格
tochararray:编程字符数组
getBytes:变成字节数组