boolean flag = true;
if (true == flag){…………}
与if (flag == true){…………}的区别?

解决方案 »

  1.   

    if(a.equals(b))与if(b.equals(a))类似   
      

  2.   

    没区别,只不过前一种写法用在C中,可以防止因为少打一个"="号(由比较变为赋值)引起的错误...
    在java中已经没这类问题了
      

  3.   

    ”==“和”equals“有本质区别
    同为String时:”==“比较内存地址
                 ”equals“比较内存中的内容
    而且用”equals“时,如果一方为常量,强烈建议将其放在前面,否则容易出现空指针错误。
      

  4.   

    无任何区别,因为你用true/false进行==判断,如果是equals,还有null问题。 == 则没有这个问题了。如果是 Boolean 为null 进行==判断,都是 java.lang.NullPointerException
      

  5.   

    对于楼主写的这两中方式的区别并没有多大。
    只是  boolean flag = true; 
    if (true == flag){…………} 
    与if (flag == true){…………}
    第一种方式更好些,它可以防止变量flag为null时出现的异常情况这也是为什么很多书中都建议使用第一重,当然,这里并没有多大区别,你的flag 已经初始化了,而在实际编程中要是String或其他类型的变量可能为null的
      

  6.   

    无任何区别,因为你用true/false进行==判断,如果是equals,还有null问题。 == 则没有这个问题了。如果是 Boolean 为null 进行==判断,都是 java.lang.NullPointerException
      

  7.   

    晕,哪有这么写的啊。
    if(flg)不就可以了。boolean型的,还有必要flag == true吗?
      

  8.   

    true   false 无区别
    equals的话常量写前面可以避免空指针异常
      

  9.   

    无任何区别,因为你用true/false进行==判断,如果是equals,还有null问题。 == 则没有这个问题了。如果是 Boolean 为null 进行==判断,都是 java.lang.NullPointerException
      

  10.   

    无任何区别,因为你用true/false进行==判断,如果是equals,还有null问题。 == 则没有这个问题了。如果是 Boolean 为null 进行==判断,都是 java.lang.NullPointerException
      

  11.   

    说的对,我大意了,没看清==与equals
    教训!
      

  12.   

    无任何区别,因为你用true/false进行==判断,如果是equals,还有null问题。 == 则没有这个问题了。如果是 Boolean 为null 进行==判断,都是 java.lang.NullPointerException
      

  13.   

    无任何区别,因为你用true/false进行==判断,如果是equals,还有null问题。 == 则没有这个问题了。如果是 Boolean 为null 进行==判断,都是 java.lang.NullPointerException
      

  14.   

    if(true == flag)
    if(flag == true)
    if(flag)
    Java编译后的字节码是一模一样的,之所以有这个疑问,我认为就是C语言带进来的。