Java中A==3和3==A有什么区别?
来源:百度知道 编辑:UC知道 时间:2024/05/28 15:36:54
如题。这是我前些日子去一家公司笔试Java时卷子上第一题……
感觉太怪异了……请高人解答一下
好歹我也是培训过J2EE的,==是判断我还不知道吗……别解释这个,我不解的就是A、3写的前后顺序不同会有什么区别。
PS:我觉得“II个人的寂寞”说的很有道理
感觉太怪异了……请高人解答一下
好歹我也是培训过J2EE的,==是判断我还不知道吗……别解释这个,我不解的就是A、3写的前后顺序不同会有什么区别。
PS:我觉得“II个人的寂寞”说的很有道理
实际上没有什么区别,只是习惯而已,
由于Java中判断语句是 两个=号,但有些程序员 由于手误会写成一个
这样的话,就成了A=3 ,此时这句就成了赋值语句,也能够编译过去。
所以为了减少这种错误,就把不是变量的 写在前面 3==A,
即便是少写了个=号,一编译就出错了。呵呵
有区别,这个看上去是一样的,在大多数情况下效果也一样,但两者是有细微区别的!在A==3中,如果A的值是由另一个表达式产生的,或者来自一条sql的执行结果,或另一个方法的返回值等,如果A的值为空,A==3就会出现逻辑错误,程序编译并不报错,这种情况如果没有在刚开始发现,在程序运行中遇到一些特别情况使A的值为空,程序会报错,这会让人很头疼的,因为你很难查出这个错误!
但相反,写成3==A就不会出现这种情况了,举例说明一下:如果有以下这个判断:
if(A==3){}else{}那么当A的值为空时,程序会报错,而不是执行else语句,这显然跟我们预想的不一致!但if(3==A){}else{}如果A的值为空,程序会执行else语句!所在如果做为变量的A有可能取空值时,要写成3==A才能避免程序遇到特殊情况时正常运行!
这就是区别!
一楼正解
一楼正解
==比较的是内存地址. 与3比较,类型只能时 int.
所以不存在 A = null 这种情况且A只能int类型.
如果编译能通过的话.a==3 与 3==a都一样. 楼上网友 水冰寒河
说的情况 应该是 a.equals("3") 与 "3".equals(a)时.
并不适合 == 比较.
oatn正解
a=3 (++a)*(++a)是多少和(a++)*(++a)有什么不同
JAVA中 static A a=new A() 这static 有什么用?具体点
C语言中 a=3 a+=a-=a*a a等于多少?
数学题:1.已知a*a-3a+1=0,求(a*a*a)/(a*a*a*a*a*a+a*a*a+1)的值
已知a+(1/a)=3,求a×a/a×a×a×a+a×a+1的值
设M=2a(a-2),N=(a-1)(a-3),则有( A )
C++中,a++、a+=1、a=a+1、++a 有什么区别?
(a+1)(a+2)(a+3)=?
vf中 ?a="123" 和 a="123 ?a有什么区别
SQL Server 中 Select @a='a' 和 Set @a='a' 有什么异同点?