写法1:
String s="" ;
for(int i=0;i<50;i++)
{
char ch1 = 'A';
s+=ch1 ;
}
写法2:
StringBuffer buf = new StringBuffer();
char ch2 = 'A';
for(int i=0;i<50;i++)
{
buf.append(ch2) ;
}
String s2 = new String(buf);
这两种写法哪种好?为什么?
如果字符变量换成对象变量的话,哪种好啊?
如:
while(true)
{
        Object obj=extract();//这种写法合obj的定义放在循环外面那种好?
        System.out.println(obj);
}

解决方案 »

  1.   

    如果是对象,是把对象的定义放在循环里面好还是外面好?
    像这样
    while(true)
    {
            Object obj=extract();//这种写法和obj的定义放在循环外面那种好?
            System.out.println(obj);
    }
      

  2.   

    你知道第一段代码的等价代码是什么样子啊String s = "";for(int i=0;i<50;i++) {
      StringBuffer buff = new StringBuffer();
      buff.append(s);
      buff.append('A');
      s = buff.toString();
    }
      

  3.   

    当然是第二种写法好,第一种写法等价于创建了50个string对象。还有后面楼主说的对象定义位置,按照你所写的程序结构,好像是想创建唯一一个对象(单例模式),如果是这样的话没有把对象放在外面定义的道理。
      

  4.   

    从效率上来讲是第二种好,其实String中的+都是转化成StringBuffer中的append操作的,所以在字符串个数不是很多的情况下用+增加代码的易读性,如果字符串个数很多的话建议使用append