首先申明这两个是从语法上讲没有任何区别,其实这里面有个小技巧,有经验的人会写成true==flag,因为这样写的话,如果少些一个=,就是写错成true=flag,编译是通不过的,你试试,而如果将flag==true写错成flag=true的话,就会变成一个赋值语句,问题就很严重,就会变成一个死循环
编程有一个原则,尽量提前发现错误,能够在编译的时候就发现就绝对不要拖到运行的时候,效率很重要
hello冷风说的很对,从语法上没有什么多大区别,只是一种避免出现错误的技巧。还有一种情况可能在项目里更常见一些,比如你通过后台查询得到了一个对象person,业务上执行这样一个判断: if (person.id != null),而可能因为种种原因person是null,这时候就会在运行时报一个NullPointException,但如果你写成if (null != person.id)则不会出现这个异常。
应该 没有 区别
你可以 试验
没区别,==是条件关系
=有区别,这个事赋值的