Java-equals和==的区别

用法

	public static void  main(String[] args){
		int a=6; 
		int b=6; 
		System.out.println(a==b);
		String str1 = "aaa"; 
		String str2 = "aaa"; 
		System.out.println(str1==str2);
		System.out.println(str2.equals(str1));
		str1 = new String(str1);
		System.out.println(str1==str2);
		System.out.println(str2.equals(str1));
		结果为:
		true
		true
		true
		false
		true
	}

区别

==:

  • 如果比较的对象是基本数据类型,则比较的是数值是否相等;
  • 如果比较的是引用数据类型,则比较的是对象的地址值是否相等。

equals

equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以

适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的

equals方法返回的却是==的判断。

总结:

所有比较是否相等时,都是用equals 并且在对常量相比较时,把常量写在前面,因为使用object的

equals object可能为null 则空指针

在阿里的代码规范中只使用equals

,阿里插件默认会识别,并可以快速修改,推荐安装阿里插件来排

查老代码使用“==”,替换成equals

 

阅读剩余
THE END