请问String str = true+"" ;与String str="true";有什么区别,

解决方案 »

  1.   

    你的String str = true+""编译不过的 
      

  2.   

    只是书写方法不同。
    String str = true+"" ;+:如果加号一边是字符串,那么加号两边将合成一个字符串。
    String str="true";字符串赋值个字符串类型的str
      

  3.   

    前者可以如下使用:boolean flag;
    if(condition is true){
        flag = true;
    } else {
        flag = false;
    }String str = flag + "";
      

  4.   

    String str = "true";
    String str = "" + true;
    String str = true + "";这三句在编译之后没有任何区别!与运行效率什么的没有任何关系
      

  5.   

    如果是 boolean b = true;
    String str = b + "";这样的话就有区别了,因为变量之间的字符串连接会使用 StringBuilder 来进行操作。
      

  6.   

    应该改成:boolean b = true;
    String str = String.valueOf(b);
      

  7.   

    String str = true+"" ;与String str="true";编译成字节码后,没有区别,
    如果用javap -c反汇编字节码文件,可以看到String str = true+"";被换成了String str="true";
      

  8.   

    String str = true+"" ;与String str="true";编译成字节码后,没有区别, 
    如果用javap -c反汇编字节码文件,可以看到String str = true+"";被换成了String str="true";学习了还真没String str = true+"" ;这样写过
      

  9.   

    有区别,如果加号一边是字符串,那么加号两边将合成一个字符串。
    String str="true";字符串赋值个字符串类型的str,并且这句话生成了2个对象
      

  10.   

    区别是引用变量str引用的不是相同的对象!
      

  11.   

    String str = true+""会生成两个字符串对象,而String str="true"只是生成一个对象。不过通常编译器会帮我们进行有限的优化,在频繁的类似操作时,最好用StringBulider,效率较高