转自csdn论坛
以我在项目中经验,这两个区别我们在项目中推荐使用true==a,是为了防止有人漏写一个=号,做这种判断时定值放在前面少写=号会报编译错,而反过来写就不会,导致结果出错后还不容易调试出来。
答案:没有区别
Java语言规范 章节15.21 Equality Operators有详细的说明。
总结一下:
“==”运算符有三种用法,
1.数字比较,也就是说运算符两边都是数字类型
2.逻辑比较,运算符两边都是boolean或Boolean类型
3.引用比较(reference equality),用来比较对象(object)实例。
楼主问的是第二种,只要等式两边都是(true)或(false),结果就是true,反之结果就是false
这个和逻辑运算符(||)或(and)不一样,"and"是从左向右比较的,如A||B,A和B都要是true,结果才是true,但运行是表达式A先被运行,如果是false,B就不再被运行了。这个特点有时可以被利用上。