Java中A==3和3==A有什么区别?

如题。这是我前些日子去一家公司笔试Java时卷子上第一题……感觉太怪异了……请高人解答一下好歹我也是培训过J2EE的,==是判断我还不知道吗……别解释这个,我不解的就是A... 如题。这是我前些日子去一家公司笔试Java时卷子上第一题……

感觉太怪异了……请高人解答一下
好歹我也是培训过J2EE的,==是判断我还不知道吗……别解释这个,我不解的就是A、3写的前后顺序不同会有什么区别。

PS:我觉得“II个人的寂寞”说的很有道理
展开
 我来答
水冰寒河
2008-06-25 · TA获得超过302个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:221万
展开全部
有区别,这个看上去是一样的,在大多数情况下效果也一样,但两者是有细微区别的!在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才能避免程序遇到特殊情况时正常运行!
这就是区别!
II个人的寂寞
2008-06-25 · TA获得超过1115个赞
知道小有建树答主
回答量:423
采纳率:0%
帮助的人:492万
展开全部
实际上没有什么区别,只是习惯而已,
由于Java中判断语句是 两个=号,但有些程序员 由于手误会写成一个
这样的话,就成了A=3 ,此时这句就成了赋值语句,也能够编译过去。
所以为了减少这种错误,就把不是变量的 写在前面 3==A,
即便是少写了个=号,一编译就出错了。呵呵
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
机智还古朴灬福祉07
2008-06-25 · TA获得超过144个赞
知道小有建树答主
回答量:407
采纳率:0%
帮助的人:0
展开全部
==比较的是内存地址. 与3比较,类型只能时 int.
所以不存在 A = null 这种情况且A只能int类型.
如果编译能通过的话.a==3 与 3==a都一样. 楼上网友 水冰寒河
说的情况 应该是 a.equals("3") 与 "3".equals(a)时.
并不适合 == 比较.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lishixnew
2008-06-25 · 超过49用户采纳过TA的回答
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:121万
展开全部
没有区别,这只是刚出现编程语言来,有个例子这么写比较a==1

以后人们就这么写,习惯。在比如,for(int i=0 为什么多数人都要i=0呢,这也是人们的习惯。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuhonghui126
2008-06-26 · 超过24用户采纳过TA的回答
知道小有建树答主
回答量:73
采纳率:0%
帮助的人:75万
展开全部
oatn正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式