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,否则不会初始化,而且无法调用.
转自:http://zhidao.baidu.com/question/80608165.html