equals和==的使用
1.equals的使用:
引用数据类型的比较:通常情况下比较的是引用数据类型下的栈中的地址,但当你重写了equals方法后就不一定了
1 2 | User user1= new User( "tom" , 12 ); User user2= new User( "tom" , 12 ); //结果为falseSystem.out.println(user1 equals user2);//结果为falseSystem.out.println(user1 == user2);User user3=user1;//结果为trueSystem.out.println(user1 == user2); |
2.==的使用:
基本数据类型的比较:比较堆中存储的值,常量池
1 2 3 | int a1= 65 ; int a2= 65 ; //结果为true System.out.println(a1 == a2); //结果为true int a1=65; char c='A'; System.out.println(a1 == c); |
3.objiect中的equals方法:未重写时时等同于==方法
1 2 3 | Public boolean equals(Object obj){ return ( this == obj); } |
4,总结:
4.1像String Data File 包装类 等类的equals方法时重写了Object 的equals方法,这时是比较的内容;
4.2在实际开发中,对于自定义类,往往需要比较两个对象的实体内容是否相同,因此需要重写Object 的equals方法
4.3 1==用在基本数据类型时,
比较两个变量的值是否相同,如果是相同数据类型直接比较,
如果比较的是两种不同的数据类型,但两者关系是可以相互进行转换的也可以比较
比较的是两种不同的数据类型(例如基本数据类型int 和 String 时) 编译报错
例如
1 2 3 | int a1= 65 ; char c= 'A' ; System.out.println(a1 == c); //结果为true |
2==用于引用数据类型比较时
比较两个引用保存的地址值是否相同
4.3 equals()的使用只能用在引用数据类型上
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
· 短信接口被刷爆:我用Nginx临时止血
· .NET 平台上的开源模型训练与推理进展
· Google发布A2A开源协议:“MCP+A2A”成未来标配?
· C# 多项目打包时如何将项目引用转为包依赖
· 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!