Java.String专题

  1. String 和 StringBuffer/StringBuilder 的区别
  • String
//新建字符串变量var1
String var1 = "abc";

/*相当于:
1. 首先,在内存中开辟一块空间建立了对象"abc",则假设其内存中地址为"abc的地址oooo".
2. 其中,var1则是对象"abc"在内存中的引用地址,即"abc的地址":
   True: var1=="abc的地址" 
   False:var1=="abc"
3. 使 var1="fgh", 则在内存中开辟了新空间建立了对象"fgh", 地址为"fgh的地址xxxx";
4. 此时,改变的是var1的值,它指向了常量"fgh", 对象"abc"并未改变,只不过到达该对象的桥梁var1被拿走:
   True: var1=="fgh的地址"
   False: var1=="abc的地址"
*/

  • StringBuffer和StringBuilde
1. 特性:二者所代表的字符串对象可以被修改

2. 共同点:二者方法完全相同。

3. 不同点:StringBuilder出现于Java5,StringBuilder是用于单线程,它所有的的方法
都未加锁(synchronized), 
因此其效率理论上来说要高于StringBuffer.

你可能感兴趣的:(Java.String专题)