String s="a"+"b"+"c";
会在String pool中产生多少个String常量?
还有对于String 的 +和concat有什么区别?

解决方案 »

  1.   

    会在String pool中产生多少个String常量?答:不会产生多个,String 的+操作,它是调用appand()这个方法。
      

  2.   

    String s="a"+"b"+"c"; 底层是用的StringBuilder,当你在连接过多时,用StringBuilder这个类会要对好些。。
      

  3.   

    1、String s = "a" + "b"  + "c";在编译的时候就把它当作一个常量处理,所以也不会有什么StringBuilder
       在String Pool中只有"abc"这个String对象
    2、concat通过把原字符串与将要concat的字符串放到一个char类型的数组,然后返回一个由这个char数组作为
       参数构造的一个新的String对象
       "+":各个字符串都是常量的话在编译期就当作常量处理,不会有StringBuilder
           不都是常量就会new 一个StringBuilder出来,再调用StringBuilder的append方法将各个字符串append
           到StringBuilder的后面,最后调用StringBuilder的toString方法返回一个String对象
      

  4.   

    String s="a"+"b"+"c"只产生一个常量吗?
      

  5.   

    String s="a"+"b"+"c"只产生一个常量吗?