您的位置:首页 > 编程语言 > Java开发

JAVA基础:“==”和“equals”的区别

2017-08-15 21:38 155 查看
“==“:	==如果是比较引用类型,则是比较两个引用是否是指向同一个对象。"equals": 	如果引用equals的类没有重写equals方法,则equals方法和==是一样的意思,即比较两个引用地址是否相等。如果重写,则一般比较的是对象的内容是否相等,具体的视重写的方法而定。	Integer a = new Integer(1);Integer b = new Integer(1);a==b为false,equals为true。
因为a和b分别new了两个对象,所以两个对象的地址是不同的,==为false。equals为ture是因为Integer重写了equals方法。所以直接
比较对象的值。
这是Integer类的源代码中的equals方法,可以看到,当a.equals(b)时,则是先判断b是不是Integer的实例,如果是,则把b强制转换
成integer进行数值比较,如果数值相同则为true
上面的输出为false,因为c并没有重写equals方法,所以相当于是c==cc,比较的内存地址,所以为false
"=="比较基本类型如int的时候,则是比较的值相当。
上面返回true,因为s1创建时,常量池里面有了字符串123,所以当s2创建的时候,则s2直接指向字符串123,所以两个是相等的。这点
要注意
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: