(String
1.字符串的不可变性:
string创建以后不能改变的,如果改变了,那也是新建的一个对象,内存指向不相同。
如:string s1="张三",---指向张三 ,string s1="早上好:"+s1;---s1不在指向张三,而是指向新的对象--早上好:张三。
如果需要一个可以改变的字符串,我们可以使用StringBuffer或者StringBuilder
2.NEW 一个。
每次 new 一个字符串就是产生一个新的对象,即便两个字符串的内容相同,使用 ”==” 比较时也为 ”false” ,如果只需比较内容是否相同,应使用 ”equals()” 方法
== ---指向内存地址是否相同,即判断是否是同一个字符串对象。equals--指向的是内容是否相同。
3.
4.stringBuilder类:
1. 当频繁操作字符串时,避免额外产生很多临时变量,可以使用stringbuilder或者stringbuffer
StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,性能高,
如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。
**并对其做了追加和插入操作。这些操作修改了 str 对象的值,而没有创建新的对象,这就是 StringBuilder 和 String 最大的区别。
******stringbuilder是从后面往前面插入的字符串。
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuilder str=new StringBuilder();
//追加t
str.append("abcdefghijklnmopqrstuvwxz");
//插入
for(int i=str.length()-3;i>0;i=i-3){
str.insert(i, ',');
}
System.out.println(str.toString());
}