b == true 和true == b到底有什么区别啊?

解决方案 »

  1.   

    基本没有什么区别!~ 是为了防止空异常而倒写的一种方法~!~万一b为null  就有可能报空异常!~------------------------------------------------------------只知道这么多!~~ 还请见谅 !~ 谢谢!~~
      

  2.   

    public class Test6 {
    public static void main(String [] args) {

    Boolean  n = null;

    if(n == true ) {
    System.out.println("你认为呢这不会报空异常吗?");
    }
    }
    }
      

  3.   

    Boolean  是对象了,所以会报异常
    而 boolean 则没有这个问题,所以一般建议true放在前面,而变量放在后面,更普遍的例子if("ADD".equals(request.getParameter("action"))如果把顺序写烦了,在没有参数时,就会出现空指针的异常了!
      

  4.   


    将下面的例子拿去做实验! 你就明白其中的道理:

    public class Test6 {
    public static void main(String [] args) {

    String  n = null;

    if("fdsfasdf".equals(n) ) {
    System.out.println("你认为呢这不会报空异常吗?");
    }
    }
    }
    例子2: public class Test6 {
    public static void main(String [] args) {

    String  n = null;

    if(n.equals("fdsfasdf") ) {
    System.out.println("你认为呢这不会报空异常吗?");
    }
    }
    }
      

  5.   

    jdk5以上才可以这么写,个人认为“自动拆装箱”虽然简化了java的使用,但是实际上从入门讲对初学者来说又加了门槛。
    public static void main(String[] args) {
    boolean a = false;
    if (a = true) {
    System.out.println("防止把==写成=,true=a肯定不行的");
    }
    Boolean b = null;
    if (null != b && b.booleanValue() == true) {
    System.out.println("防止空指针异常b!=null效果一样的");
    }
    }
      

  6.   


    请在1.4下试试看,编译通不过
    别人问的是布尔型变量,他没说b是不是对象,在不同的jdk下会有不同的效果,但是你说的字符串肯定是对象,字符串这样用肯定抛异常
      

  7.   

    4楼 怎么会报空指针异常
    你又满意调用对应对象的方法,,
    况且 你用boolean n = null; 就已经报异常了
      

  8.   

    楼上没看清楚
    他用的是Boolean
      

  9.   

    boolean b;
    b == true;  
    true == b;
      

  10.   

    如果 b 是 boolean 基本类型,if(b == true) 或 if(b == true) 一般不会这
    么写的,可写成 if(b)如果 b 是 Boolean 类型,那不管是 if(b == true) 还是 if(b == true) 这
    样,由于涉及自动拆箱,在内部会把 Boolean 转换成 boolean 类型,由于 boolean
    并不能接收 null 值,因此都会报出空指针异常。