你真的知道equals和==在Java中真正的区别吗
遥远的Paradise_:
==:关系运算符
在基本数据类型中比较两个值的内容是否相等
在引用类型型中比较的是两个对象的地址是否相等
equals()是Object类中的方法
1.基本数据类型无法使用equals()方法
2.在引用类型中若是没有重写Object类时,则默认使用Object类的equals方法,则仍然
利用“==”比较两个对象的内存地址,若是重写Object类的equals方法,则调用子类重写后
的方法可以进行内容或值的比较
【回复】比如StringBuffer类,我之前写算法就一直以为StringBuffer的equals()肯定也是和String类一样的,结果老是返回true,一查才知道原来没重写...卯毛:
视频不错,适合初学者。
但是,初学者现在好像挺惨的。[脱单doge]MESTARRYsky:
一开始也遇到过这个坑,idea提示我然后就自动换成equals[doge],还有其他的问题,不得不说idea太智能了
【回复】当时我踩这个坑踩了一下午,想着明明内容一样,为什么用扫描器输入的字符串用==比较时永远是false
【回复】建议再装一个阿里代码规范插件[doge]梦乃真帆:
String s = "hello"和String s = new String("hello")有区别吗[思考]
【回复】有的,前者的hello会被认为是一个常量,并且被存储在字节码文件中,但是使用new一定会创建一个新的对象(可以理解为使用这个常量拷贝了一个字符串对象)
编程语言 equals方法 前端 React Java 架构师 Java面试 SpringBoot Java初学者 Java特性