对于初学java的同学们,肯定遇见过这种情况。
String str=""; for(int i=0;i<10000;i++){ str+=i; }
其实这种方法很浪费空间的。
因为String他不是一个数据类型。她是一个对象类型。不会像
int a= 1;
a=2;那么1会被2覆盖掉。
String之前定义的值会一直存在于常量池中,等待GC回收,重新定义新的值,他只会重新开辟新的空间,
而引用str只不过是指向了新的空间。
所以对字符串频繁的修改时,我们推荐使用String的增强类StringBuffer。
他最大的升级就是可以在原来的内存空间直接修改变量值。
定义StringBuffer。
StringBuffer sb =new StringBuffer("abc");
StringBuffer的常用方法:
sb.append();//在字符串的末尾添加字符。
sb.insert(a,b);//在原字符串的a位置插入字符串b。
sb.reverse();//将字符串逆序颠倒.。
sb.replace();//替换字符串
String-StringBuffer相互独立,并且可以相互转换。
String转StringBuffer:
StringBuffer sb =new StringBuffer(str);
StringBuffer转String:
sb.toString()就可以了。