问一个简单的问题 Object.equals和==是不是一样啊,只有两个引用指向相同的时候才为true? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当然不一样了,==比较的是引用,即内存中的位置是否相等。而equals是比较值是否相等。当然有些类已经封装成一样,比如String类 我的一点心得,如果不对请指教:equals只能比较Object而不能比较int,float等等,==是都可以比较的,当比较的对象为int等时==比较的是两者的值;==用于比较Object时是比较的Object的"引用"是否一样,即比较的双方是否指向同一个Object,也就是是否指向同一个内存地址;equals比较的是Object的值,即是两个引用所指向的Object的值是否相等,也就是两个引用指向的不同内存地址内存储的Object是否相等;举例如下:A,B表示两个Object的引用,也可以理解为存储Object的内存地址,'张三','李四'代表Object的值,如果A:张三,B:张三,A!=B,用"=="比较为false,用"equals"比较为true 另外String类也没有例外的,用"=="比较和"eqauls"比较结果是不一样的,具体的原因是String类的构造方式容易让人误解 做比较的时候还是尽量用.equals()吧多少能减少些无畏的错误例如使用Object.equals()的时候尽量用 "字符串".equals(变量); 的形式 可以减少NullPoint产生的可能 还是用.equals()吧==经常出错其实我也想知道他们的实质区别 不一样,但你可以使用.equals()。 equals()是一个方法 比较两个对象的值==是运算符 比较基本类型的值或这是对象引用的地址 如果单纯是考虑Object对象的这个equals()方法的话,那它是跟==同样的效果,都是考虑两个对象的引用是否相等的。但是有些类是修改了这个继承来的equals()方法的,比如string类的equals就不是跟==一样的效果了,string的equals是比较两个字符串对象的实际内容是不是相等的。如果你创建一个新的类,但是你没有对equals方法作出任何修改,那它都是跟==相等的效果,比较的是对象的引用。 ant运行jar时的classpath问题 池的概念问题 ultraedit打开多个文件选项卡样式的菜单 SWT编程问题 得分好贴 推荐几个优秀的JAVA社区 Thread與Socket阻塞 数据库事物问题? 哪里有installanywhere下载 列位看官:请帮在下一把! Java Swing汉字输入问题 提交表单时,怎样获取listbox里面所有的值? 一个控件的代码
当然有些类已经封装成一样,比如String类
equals只能比较Object而不能比较int,float等等,==是都可以比较的,当比较的对象为int等时==比较的是两者的值;
==用于比较Object时是比较的Object的"引用"是否一样,即比较的双方是否指向同一个Object,也就是是否指向同一个内存地址;
equals比较的是Object的值,即是两个引用所指向的Object的值是否相等,也就是两个引用指向的不同内存地址内存储的Object是否相等;
举例如下:A,B表示两个Object的引用,也可以理解为存储Object的内存地址,'张三','李四'代表Object的值,如果A:张三,B:张三,A!=B,用"=="比较为false,用"equals"比较为true
多少能减少些无畏的错误例如使用Object.equals()的时候
尽量用 "字符串".equals(变量); 的形式 可以减少NullPoint产生的可能
==经常出错
其实我也想知道他们的实质区别
==是运算符 比较基本类型的值或这是对象引用的地址
但是有些类是修改了这个继承来的equals()方法的,比如string类的equals就不是跟==一样的效果了,string的equals是比较两个字符串对象的实际内容是不是相等的。如果你创建一个新的类,但是你没有对equals方法作出任何修改,那它都是跟==相等的效果,比较的是对象的引用。