==和equals的区别? 不要这么官方,通俗一些,好理解一些?
解决方案 »
- 菜鸟问题
- Hibernate Dao类 映射Class “Unknown entity” 急在线等~~!
- 困惑啊,为什么我的jsp页面总是提示404错误啊,大家帮忙看下啊
- 请教hql中order by 的用法
- 基于axis开发的webservice项目与其它java应用整合出现的问题。
- 导入项目出错,求助
- 老问题!!!(看过很多贴还是不明)
- 请问Java,xml,html,JavaScript,JSP,xsl好用的文本编辑器有哪些?
- 也谈支持php的J2EE应用服务器
- 怎么使用JAVA代码获取Base64后的真实内容
- 内部类可以实现的功能为什么要用内部接口?
- java自定义加密解密算法,该种加密如何解?
用==判断他们返回就是false,用equals就是true,因为new的时候,是单独声明一个存储一个地址用来分别存储a,b,两个不同的地址,而==判断的就是地址是否一样,equals判断的就是他们的内容,也就是123,是否相同,当然,equals可以重写,可以根据自己需求判断,而String a=new String("123"),String b="123";这种情况,用==是为true,因为在b赋值的时候,b存储的“123”是指向a的“123”地址,也就是a,b的存储地址相同,不知道这样你能不能理解,希望有帮助
A==B对于程序来说比较的是房子A和房子B两个房子所在的地理位置是不是一样,就像门牌号一样,如果一致那么
A==B是true,
A.equal(B)就可以让你定义你的比较方式了,比如房子A是两室一厅100平米,B也是两室一厅100平米,那么当上述情况相同时
你觉得他们相等,也就是说A.equals(B)是true
==并不是比较字符串内容,equals才是
所以:==比较名字,equals比较内容
* equals方法是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性
基本数据类型是直接取真实值的,特殊的String是直接从数据池取值,其他的引用数据类型都是通过栈内存的地址指向堆里的内容。
equals是继承于Object的方法,如果重写了该方法如String类,比较的就是里面的内容;如果没有重写例如StringBuffer类,比较的就是地址
equals用于判断引用类型的值相等
equals重写后可比较字符串及对象的内容.
涉及类的对象比较的话,建议使用equals
equals比较内容(字符数量、大小写等,不比较地址)
具体怎么实现的你看看源码就明白了
那么用== , 就是比较这2个名称的地址.是不是一样. 返回的就是tureequals,就是比较这两个是不是一样的, 比如这栋楼里面,1楼两开门, 1-2和11-1. 虽然他们都是同一栋楼,但是返回的就是false
但java中equals可以被重写,改成你自定义的相等的条件。比如,一个Student类,有很多属性,你重写equals,只要name相等,两个对象就相等,而不管其他条件,如年龄什么的(仅仅举例,此处实际上不应重写)。