xxx.equals(null)和xxx == null 的区别 null是空对象如果xxx是对象而且是null的话,返回true,否则返回false如果xxx是基本类型的话,xxx.equals(null)会出现编译错误,xxx == null 会出现运行异常 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 xxx.equals(null)判断xxx的内容是否等于null的内容xxx == null 判断xxx是否等于空值 CJMaster(Master): 对于null来说会有什么不同?判断的结果会有不同吗? equals比较的是实体内容,==比较的对象的引用是不一样的 xxx.equals(null)和xxx == null区别就是,如果程序能正常运行下去的话xxx.equals(null)一定只能返回falsexxx == null可能返回true,也可能返回false因为如果xxx是null的话xxx.equals(null)会抛出NullPointerExceptionxxx == null返回true如果xxx不是null的话...... 如果XXX是Object的话,用equals方法的话,如果其中参数为空,那么肯定返回false,如果XXX不是OBJECT,那么就没有equals方法 晕啊,这个问题根本就不成立哈.请问大家会哪个猪头会写 XX.equal(null)?明摆着就算有XX是null,肯定是出NullPointException. 呵呵,是的,对null做引用当然会报NullPointException,要不就是返回一定为false 用”==“测试两个基本类型是否相等,或指向同一个对象。用“equals ”方法测试两个对象是否相等。JAVA 提供了对象,基本类型,和相等性三个观念,这三个要素是进行class设计的基础。Practical Java 详细请看Practical Java 中文版,对JAVA的相等性阐述相当明白 equals()比较二者内容是否相等,==比较二者是否为同一引用,即指向二者的指针是否相等,说白了就是判断二者是不是同一个东西。equals()是类的方法,调用它必然要引用对象,如果XXX的值为null,必然会抛异常;如果XXX的值不为null,此方法返回false,也就是说不可能返回true。用==判断的话分两种情况:如果两个操作数是基本类型,那么没什么新鲜的,跟c一样,就是1等于1、2等于2的问题;如果两个操作数是对象,那么一定当两个对象是同一个,才会返回true,否则即使二者的内容一样,指向它们的指针未必相等,也就不一定返回true。具体到这个问题,结论是:equals方法恒为false,双等号有可能返回true。 equals 也可能返回 true 的,比如某个人写了这样一个类public class MyClass { public boolean equals(Object obj) { if (obj == null) return true; else if (obj instanceof MyClass) return true; else return false; }}不要说我极端,这种可能并不是没有。所以,equals(null) 到底返回什么,得相比较的类的实现。不能武断的说一定为 false. equals方法有什么功能只有定义类的用户自己知道,所以上面的关于equals功能的讨论都是没有道理的。 支持 jamesfancy()边城狂人(James Fancy) ,他对于xxx.equals(null)的解释很确切同时支持flyforlove(为情飞) ,他对xxx.equals(null)的原理说得很好。至于xxx == null 是判断该引用是否是否为空对象,一般情况,定义对象是通常为:Object xxx=null;然后赋值xxx = new Object(); equals(Object o)是自己写的,Object 内默认为:public boolean equals(Object obj) { return (this == obj);}来自java源码.src.zip happyegg(想转型的程序员) 说的是对的。即使程序写得像jamesfancy()边城狂人(James Fancy) 这样,XXX为空时也同样是抛出NullPointerException.你想相,是这样的:MyClass XXX = null;XXX.equals(Oobj);当然是一个异常。 public boolean test(Object xxx) { return xxx.equals(null) == (xxx == null);}test永远不可能返回true(前提是equals的写法,符合那几条规则):P 用Java IO 创建文件夹问题 无法退出窗口 根据可显示的界面大小确定字体大小 table.getValueAt(row, 2) 烦恼 jdk6+eclipse 运行配置 关于无参构造函数的问题,请大伙帮我分析一下 Java基础知识考验!!! 设置JSP开发环境,耗时》5小时,未遂。决定散分50,寻诸位帮助!!! 为什么我的包does not exist? java 如何将多维数组与多维数组 拼接起来 请问下面的操作符怎么改? 新手提问~ 关于double运算和一条语句的解释
xxx == null 判断xxx是否等于空值
是不一样的
区别就是,如果程序能正常运行下去的话
xxx.equals(null)一定只能返回false
xxx == null可能返回true,也可能返回false因为如果xxx是null的话
xxx.equals(null)会抛出NullPointerException
xxx == null返回true如果xxx不是null的话......
这个问题根本就不成立哈.
请问大家会哪个猪头会写 XX.equal(null)?
明摆着就算有XX是null,肯定是出NullPointException.
用==判断的话分两种情况:如果两个操作数是基本类型,那么没什么新鲜的,跟c一样,就是1等于1、2等于2的问题;如果两个操作数是对象,那么一定当两个对象是同一个,才会返回true,否则即使二者的内容一样,指向它们的指针未必相等,也就不一定返回true。具体到这个问题,结论是:equals方法恒为false,双等号有可能返回true。
public boolean equals(Object obj) {
if (obj == null) return true;
else if (obj instanceof MyClass) return true;
else return false;
}
}不要说我极端,这种可能并不是没有。
所以,equals(null) 到底返回什么,得相比较的类的实现。不能武断的说一定为 false.
同时支持flyforlove(为情飞) ,他对xxx.equals(null)的原理说得很好。
至于xxx == null 是判断该引用是否是否为空对象,一般情况,定义对象是通常为:
Object xxx=null;
然后赋值
xxx = new Object();
return (this == obj);
}来自java源码.src.zip
即使程序写得像jamesfancy()边城狂人(James Fancy) 这样,XXX为空时也同样是抛出NullPointerException.你想相,是这样的:
MyClass XXX = null;
XXX.equals(Oobj);当然是一个异常。
return xxx.equals(null) == (xxx == null);
}test永远不可能返回true(前提是equals的写法,符合那几条规则):P