Java中"=="和equals方法比较

Java中”==”和equals方法比较

java中判断两个变量是否相等有两种方式:一是使用==运算符,二是利用equals()方法。如果两个变量是基本数据类型,且都是数值类型可以使用==运算符将返回true,如果两个变量是引用数据类型,只有他们指向同一个对象时,==判断才返回true。

public class Test
{
public statc void main(String[] args)
{
int ii = 100;
float ff = 100.0f;
// 将返回true
System.out.println(ii == ff);
String str1 = "zz";
String str2 = new String("zz");
// str1和str2分别指向两个不同对象,将返回false
System.out.println(str1 == str2);
//将返回true
System.out.println(str1.equals(str2));
}
}

java程序使用像”zz”字符串直接量,java虚拟机将使用常量池来管理这些字符串;当使用new String(“zz”)时,jvm先使用常量池来管理字符串,再调用String构造器创建一个新的String对象。new String(“zz”)一创建了两个字符串对象。

equals()方法是Object类提供的一个方法,其实判断两个对象是否相等equals()方法和==运算符没有区别,同样要求两个引用变量指向同一个对象的时候才会返回true。但是equals()方法可以通过重写来实现自己需要的判断标准,String就是重写了equals()方法实现了”值比较”;。

下面定义一个Person类重写equals()方法,只要idCode相同就确定是一个人。

public class Person
{

private String idCode;

public Person(String idCode)
{
this.idCode = idCode;
}

public String getIdCode()
{
return idCode;
}

public void setIdCode(String idCode)
{
this.idCode = idCode;
}

@Override
public boolean equals(Object obj)
{
if (this == obj)
{
return true;
}
if (obj != null && obj.getClass() == Person.class)
{
Person p = (Person)obj;
if (this.getIdCode().equals(p.getIdCode()))
{
return true;
}
}
return false;
}

public static void main(String[] args)
{
Person p1 = new Person("123");
Person p2 = new Person("123");
Person p3 = new Person("124");
// 将返回true
System.out.println(p1.equals(p2));
// 将返回false
System.out.println(p1.equals(p3));
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值