在Java中,比较一个值和一个引用时需要特别注意。如果两者类型不同,那么直接用==运算符比较的将是它们的存储地址,而不是实际的值。因此需要使用equals()方法或者进行类型转换,才能得到正确的比较结果。
示例代码:
//比较int类型变量和Integer类型对象 int a = 5; Integer b = new Integer(5); System.out.println(a == b); //输出false,因为比较的是地址 System.out.println(a == b.intValue()); //输出true,转换为int类型后进行比较 System.out.println(b.equals(a)); //输出true,使用equals()方法进行比较
//比较String类型变量和String类型对象引用 String c = "hello"; String d = new String("hello"); System.out.println(c == d); //输出false,因为比较的是地址 System.out.println(c.equals(d)); //输出true,使用equals()方法进行比较