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()的使用只能用在引用数据类型上

posted @   我的二天  阅读(129)  评论(0编辑  收藏  举报
编辑推荐:
· 如果单表数据量大,只能考虑分库分表吗?
· 一文彻底搞懂 MCP:AI 大模型的标准化工具箱
· 电商平台中订单未支付过期如何实现自动关单?
· 用 .NET NativeAOT 构建完全 distroless 的静态链接应用
· 为什么构造函数需要尽可能的简单
阅读排行:
· 短信接口被刷爆:我用Nginx临时止血
· .NET 平台上的开源模型训练与推理进展
· Google发布A2A开源协议:“MCP+A2A”成未来标配?
· C# 多项目打包时如何将项目引用转为包依赖
· 一款让 Everything 更加如虎添翼的 .NET 开源辅助工具!
点击右上角即可分享
微信分享提示