java的equals和==的比较示例
先看例子:
package com.amos;
/**
* @ClassName: EqualTest
* @Description:Java中的equal和==的比较
* @author: amosli
*/
public class EqualTest {
public static void main(String[] args) {
int a = 1;
float b = 1.0f;
System.out.println(a == b);// true
String c = new String("hi_amos");
String d = new String("hi_amos");
System.out.println(c == d);// false
System.out.println(c.equals(d));// true
}
}
Java中判断两个变量是否相等主要有两种判方式:一种是利用==运算符,另一种是利用equals方法来判断两者是否相同.
1).当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型,不要求数据类型严格相同,只要两个变量的值相等,那么将返回true.
2).如果对于两个引用类型变量,它们必须指向一个对象时,==判断才会返回true.==不可用于比较类型上没有父子关系的两个对象.
如上可以解释同样一new String时,==判断两者是否相同返回的是false,而equals返回的是true.
equals方法针对的String类,查看其源码,可以发现其实equals只能算是==的一种特例.如下面源码所示:
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String) anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
equals方法实际上一开始就调用了==判别式,然后再判断其进一步值是否正确
相关文章
java通过Arrays.sort(int[] a)实现由大到小排序的方法实现
Java中的Arrays.sort()方法是一种内置的排序方法,用于对数组进行排序,本文就来介绍一下java中的Arrays.sort()排序方法的用法,具有一定的参考价值,感兴趣的可以了解一下2023-12-12
Springboot2以代码的方式统一配置Jackson教程
这篇文章主要介绍了Springboot2以代码的方式统一配置Jackson教程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-11-11
SpringBoot 利用MultipartFile上传本地图片生成图片链接的实现方法
这篇文章主要介绍了SpringBoot 利用MultipartFile上传本地图片生成图片链接的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
Java之HashMap.values()转List时的错误和正确演示
这篇文章主要介绍了Java之HashMap.values()转List时的错误和正确演示,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03


最新评论