黑马程序员技术交流社区

标题: String小例子示范 [打印本页]

作者: Justfeeling    时间: 2014-8-9 22:01
标题: String小例子示范
                /*
                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
                */
               



作者: 依然超级赛亚人    时间: 2014-8-10 07:06
本帖最后由 依然超级赛亚人 于 2014-8-10 07:09 编辑

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2