java中==与euqals的区别

==既可以比较基本数据类型,也可以比较引用数据类型
基本数据类型是直接比较数值,引用数据类型直接比较地址
equals是比较地址,可以在类中重写

public class text {
	public static void main(String[] args) {
		int arr1[]=new int [2];
		arr1[0]=1;
		arr1[1]=1;
		int arr2[]=new int [2];
		arr2[0]=1;
		arr2[1]=1;
		//arr2=arr1;
		System.out.println(arr1.equals(arr2));
		System.out.println(arr1==arr2);
		System.out.println(arr1[0]==arr2[0]);
	}
}

两个引用数据类型指向同一块内存时,任何一个引用使这个值改变,都会使这块内存改变

public class text {
	public static void main(String[] args) {
		int arr1[]=new int [2];
		arr1[0]=1;
		arr1[1]=1;
		int arr2[]=new int[2];
		arr2=arr1;
		arr2[0]=3;
		arr2[1]=4;
		//arr2=arr1;
//		System.out.println(arr1.equals(arr2));
//		System.out.println(arr1==arr2);
//		System.out.println(arr1[0]==arr2[0]);
		System.out.println(arr1[0]);
		arr1[0]=5;
		System.out.println(arr1[0]);
	}
}
posted @ 2019-12-17 15:19  鱼皮  阅读(8)  评论(0)    收藏  举报