object.equals(null)和object==null有什么区别

刚有个程序用object.equals(null)就有错用object==null就好了Stringa;Stringa=null;是一样的吗将a声明为null就可以编译了... 刚有个程序 用object.equals(null)就有错
用object==null就好了
String a;
String a=null;
是一样的吗
将a声明为null就可以编译了;String a=null也算是初始化吗
展开
 我来答
0神龙之首0
推荐于2018-03-19 · TA获得超过197个赞
知道小有建树答主
回答量:38
采纳率:0%
帮助的人:55.3万
展开全部
首先你要先明白它们分别的作用是什么:
object.equals(null),“equals()”方法是比较“值”是否相等;
object==null,“==”比较运算符是用来比较“对象”是否是同一个。

说的简单一点java是面向对象的编程语言:
如果new了一个对象,那么它就有值,它的值可以是“null”;
如果根本就没有new这个对象,那它就不存在,没有办法进行比较,就会出现空指针的异常。

说的有些模棱两可,给你举个例子:
Object object1=new Object();
Object object2=new Object();
Object object3;

object1.equals(object2);//这是true
object1==object2;//未必是true
object3==object2 ;//就要报错,因为object3还未开辟内存,object2不知道指向谁取进行比较。

也就是说,每次new一个对象都是新开辟一块内存,它们分别站在不同的位置上进行比较,equals是比较他们的值,而==相当于比较它们的位置!

不知道你懂了没有,不过你可以问我~

我的qq:287572694(神龙之首)

java精英群:63353323
sorry1254
2008-12-29 · TA获得超过1208个赞
知道小有建树答主
回答量:240
采纳率:0%
帮助的人:250万
展开全部
object==null判断object是不是被分配了内存空间;假如object没有被分配内存空间,即object==null,object.equals(null)将会抛出NullPointerException,没有被分配内存空间的对象是不能调用任何方法的。
另外谈谈==和equals().
前者比较的是两个对象的内存地址是否一样,判断两者是不是同一对象;后者比较的是具体的“值”是否一样,如"aaa".equals("aaa")就是true。
而且对于自己定义的类,如果要实现equals()的上述功能,还要重写Object类的equals()方法,它默认的是用"=="来作比较,上面的String类已经重写了该方法,所以可以拿来直接用。
请恕我直言, “0神龙之首0”回答得很好,但他“object1.equals(object2);//这是true ”这句话是错的,它的结果是false,原因就是object的equals()方法默认是用“==”来做比较,object1和object2显然不是同一对象。

是一样的,不过要注意声明的位置: 如果声明为类的属性则没有问题,如果是在方法体内声明的,则一定要给它赋初值,即使是null, 如String a=null,否则不会初始化,而且无法调用.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cqh46
2008-12-29 · TA获得超过3292个赞
知道大有可为答主
回答量:2149
采纳率:100%
帮助的人:1267万
展开全部
首先不推荐 object.equals(null) 这么写。

应该是 object.equals(object2)
或者是 object.equals(“”)

== 是比较对象的,也就是内存地址。
而 equal 是比较 字符串的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
headmycalll
2008-12-29 · TA获得超过340个赞
知道答主
回答量:88
采纳率:0%
帮助的人:0
展开全部
object == null的时候
调用object.equals(null)会空指针异常

String a=null; 算初始化
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
felly822
2008-12-29 · TA获得超过265个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:253万
展开全部
一般这样写

null.equals(objct)或者Object==null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式