==和equals()的不同点
2024-08-26 22:40:02
两者都可以用于对象的比较。"=="用于比较两个对象的内存地址值(引用值)是否相等,equals()方法用于比较两个对象的内容是否一致。
String str1 = new String("java");
String str2 = new String("java");
String str3 = str2;
str1和str2的内容完全一样,但是它两在堆内存中处于不同的内存位置,内存地址不同,所以str1==str2是FALSE!str1.equals(str2)是TRUE!
然而还需要注意的是,若对象类型的类为Object类或者Object类的子类,那么则需要覆写Object类中的equals方法才能准确的对两个对象内容进行比较,不然比较的是两个对象的地址比较。
//没有覆写equals()方法
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
} class Object {
public static void main(String[] args) {
Person p1 = new Person("张三",12);
Person p2 = new Person("张三",12);
System.out.println(p1.equals(p2)?"是同一个人":"是两个人");
}
}
程序运行结果为:是两个人。此时equals()就相当于"=="
最新文章
- ASP.NET Aries JSAPI 文档说明:AR.Form、AR.Combobox
- 【学习笔记】JAva编程思想之多态
- arcgis engine 监听element的添加、更新和删除事件(使用IGraphicsContainerEvents)
- AOP基础—代理模式
- atom编辑markdown之上传图片
- struts2视频学习笔记 01-02
- linux 下安装jdk及配置jdk环境图解
- [置顶] github 出现 Permission denied (publickey)的解决
- All about Performing User-Managed Database Recovery
- JS中的单引号和双引号
- 基于.net的分布式系统限流组件(限流算法:令牌算法和漏斗算法)
- 在CentOs7上部署Gunicorn
- SWT 几个sample网站
- getservbyname和getservbyport
- 万网域名查询API接口
- js css等静态文件版本控制,一处配置多处更新.net版【原创】
- 企业案例(一):由于mysql sleep线程过多小故障
- Dictionary<;string, object>;
- fdisk用法(转载)
- 对象的当前状态使该操作无效 说明: 执行当前 Web 请求期间,出现未处理的异常。
热门文章
- 洛谷P3094 [USACO13DEC]假期计划Vacation Planning
- POJ 1661 Help Jimmy【DP】
- MySQLWorkbench里的稀奇事之timestamp的非空默认值
- http://www.16aspx.com/Code/Show/5352
- 静态网页怎样实现动态交互?-JavaScript
- hdoj 1203 I NEED A OFFER! 【另类01背包】【概率背包】
- mtk刷机错误汇总
- ZOJ 3632 Watermelon Full of Water (线段树 区间更新 + dp)
- REST技术第四步 多个參数注解问题
- iOS + Nodejs SSL/Https双向认证