在Java语言里 ==和equals的区别
来源:互联网 发布:便宜已备案域名出售 编辑:程序博客网 时间:2024/04/19 11:59
虽然我还没有踏入职场,但是学习Java以来做了很多的学习笔记,在我所看的各种书籍中对这个问题的回答可谓是各有不同,但是我个人感觉它们说的不是很全面,所以自己结合笔记又总结了一点,如果有不周到的地方,还请各位指教一下;
现在很多人会说==和equals方法的不同之处是:==比较的是两个对象的内存地址,而equals比较的是两个对象的内容是否相同,当然这是相当的片面的,好一点的书籍里面对这两个比较方法的说明大多是:equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等。 ==用于比较引用和比较基本数据类型时具有不同的功能:比较基本数据类型,如果两个值相同,则结果为true,而在比较引用时,如果引用指向内存中的同一对象,结果为true。这样的说明本身来说是可行的,但是可能说的简洁了一点,有一些特殊的情况还是需要加以说明的。
我要补充的一点就是对与自定义类型的相等比较应该如何说明,API里的类大部分都重写了equals方法,没有重写的一般是自己写的类,如果是你自己定义的一个类,比较自定义类用equals和==是一样的,都是比较句柄地址,因为自定义的类是继承于object,而object中的equals就是用==来实现的,你可以看源码。
所以在面试的时候在上面的基础上最好加上自定义类型的情况:对于Object类来说,equals方法相当于 == ;即判断的是两个对象的地址是不是相同;对于继承了Object类的子类来说,只有重写了父类的equals方法的类才是判断两个对象的内容!
我想总结了上面良种的回答,才算是最完整圆满的。最后,希望大家面试顺利,找到自己心仪的工作。
- 在Java语言里 ==和equals的区别
- java里 equals和== 区别
- Java 语言中 equals 和 == 的区别
- Java语言中==和equals的区别详解
- Java 语言中 equals 和 == 的区别
- 在java中“equals”和“==”的区别
- 在java中==和equals之间的区别
- java ==和equals、equals和hashCode的区别
- .NET里string.Equals和==的区别
- Equals和==的区别,java
- java == 和 equals的区别
- java ==和equals的区别
- Java "equals"和"=="的区别
- java:equals 和 ==的区别
- Java "==" 和 .equals()的区别
- java == 和equals的区别
- java==和equals()的区别?
- java equals和==的区别
- JS 文本框输入字数 显示剩余
- VerticalTextView的实现
- char、varchar和varchar2的区别
- 收获,不止Oracle
- 面试感想
- 在Java语言里 ==和equals的区别
- Apache ServiceMix 介绍
- cocos2d-x CCTouch中的函数
- 虚幻3(导演动画)二触发音效
- UnboundLocalError: local variable ' ' referenced before assignment
- VC视频教程笔记!
- java正则表达式
- linux中断处理机制
- struts2 中action执行两次的问题