A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Justfeeling 中级黑马   /  2014-8-9 22:01  /  948 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                /*
                String string1="abc";
                String string2="abc";
               
                //只有显示初始化字符串才有这样的结果。比较两个对象或者基本数据                  类型时,用==,比较的是地址值。
                System.out.println(string1==string2);        //true
                //equals(Object obj):指其他某个对象是否与此对象相等(实际是相同)。Object中对比的是两个对象的地址。但是其子类可以重写这个方法,比较其他的内容(比如String重写了equals方法,比较的是具体的字符串值是否相等。)
                System.out.println(string1.equals(string2));        //true
                */
               


1 个回复

倒序浏览
本帖最后由 依然超级赛亚人 于 2014-8-10 07:09 编辑

我想插一句,在用==比较基本类型的数据时,比较的是基本类型的值是否相同,比较引用类型时比较的是对象的地址值是否相同。我们比较地址值时常用==,比较内容是否相等时用equals(),而且自定义类基本上都得自己改写此方法,否则默认比较地址值。
ps:当学会了eclipse软件时,会点击鼠标就行了,它会在你的自定义类中自动生成equals()方法,当然前提最好还是自己弄懂了为什么要重写,以及遇到各种自定义类时怎么重写,否则没理解到位的话自己有时甚至连自动重写都经常忘掉。下面是我们学的==和equals的总结:
==和equals()的区别?
                        A:==
                                基本类型:比较的是基本类型的值是否相同
                                引用类型:比较的是对象的地址值是否相同
                        B:equals()
                                默认情况下,比较对象的地址值。
                                如果重写了该方法,那么,什么作用请看自己的代码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马