Java String类深入理解
在这里主要说一些String类的细节,易忽略的点,以及面试题
String s1="abc;//s1是一个类类型变量,“abc"是一个对象。
s1="ab";//新建立了一个对象,s1指向这个对象,原来的"abc"还在堆内存中。
String s2=new String("abc");//不使用!建立了两个对象
String s3="abc";//与s1共用一个对象,或者说s1,s3指向同一对象,不会再开辟空间。
字符串的最大特点:一旦被初始化就不可以改变。
字符串比较使用.equals(),不使用c语言的==。
用StringBuffer对字符串进行增删改查
StringBuffer特点
- 长度是可变化的。
- 可以字节操作多个数据类型、
- 最终会通过toString方法变成字符串
StringBuffer append()//后面追加
StringBuffer delete(int start, int end)
StringBuffer deleteCharAt(int index)//删除某个字符
StringBuffer insert(int offset, char c)//第二个参数有各种基础类型重载
void setCharAt(int index, char ch)//修改某个字符
StringBuffer reverse()//反转
StringBuffer replace(int start, int end, String str)//替换
void trimToSize() //尝试减少用于字符序列的存储空间。
使用StringBuilder代替StringBuffer
在SDK1.5后出现了StringBuilder类(),使用方法和StringBuffer相同,开发时单线程使用StringBuilder,多线程使用StringBuffer提高开发效率。