- 2
- 0
- 约8.33千字
- 约 9页
- 2026-06-25 发布于河北
- 举报
经典IT面试题及详细答案
一、基础编程类(必考题,覆盖初级到中级)
1.请说明Java中equals()和==的区别(高频)
问题解析:考察对Java基础类型和引用类型的理解,避免混淆值比较和地址比较,实际开发中常用来判断对象是否相等,容易踩坑。
详细答案:核心区别在于比较的目标不同,分两种场景说明,不搞复杂概念堆砌:
1.==:属于运算符,分两种情况:
-基本数据类型(int、char、double等):比较的是具体的值,比如inta=10,intb=10,a==b结果为true;
-引用数据类型(类、数组、接口等):比较的是对象在堆内存中的地址(即是否是同一个对象),哪怕两个对象内容完全一样,只要是不同对象,地址不同,==结果就是false。
2.equals():是Object类的方法,默认实现其实就是==(比较地址),但很多类(如String、Integer)重写了equals()方法,重写后比较的是对象的内容,而非地址。
举个实际开发中的例子:Strings1=abc;Strings2=newString(abc);此时s1==s2为false(s1存在常量池,s2存在堆内存,地址不同),但s1.equals(s2)为true(内容都是abc)。
注意:自定义类如果需要用equals()判断内容相等,必须手动重写equals()方法
原创力文档

文档评论(0)