java判断地址相等_java判断相等

一.字符串

1.equals():比较内容,推荐

String a=new String("abc");

String b=new String("abc");

a.equals(b);

2.= = :比较地址

String c="123";

String d="123";

System.out.println(c==d); //true,在java中字符串的值是不可改变的,相同的字符串在内存中只会存一份,所以a和b指向的是同一个对象;

String a=new String("abc");

String b=new String("abc");

System.out.println(c==d); //false,此时a和b指向不同的对象。

= =是比较内存地址的,内存地址相等,就返回true,地址相等,值肯定也一样,地址不相等,即使值相等也会返回false,

字符串是对象类型,所以不能用简单的“==”判断。

而用equals()方法,String中重写了equals,不管地址是否相等,都只对值进行比较,值相等就返回true,不相等就返回false。两个String对象相等或内容相等都返回true

二.基本数据类型和包装类

以int和Integer为例:

java中的基本数据类型判断是否相等,直接使用"=="就行了,相等返回true,否则,返回false。

当用“==”进行比较时,jvm默认是比较数据在java堆的地址。

int i = 10;int j = 10;

System.out.print(i== j);

Integer是对象,推荐使用equals方法进行相等比较。

Integer g = 128;

Integer h= 128;

System.out.println(g.equals(h));

Integer是int的包装类;int是基本数据类型; Integer变量必须实例化后才能使用;int变量不需要;

Integer实际是对象的引用,指向此new的Integer对象;int是直接存储数据值 ;Integer的默认值是null;int的默认值是0。

三.数组

使用 equals ()方法来判断数组是否相等:Arrays.equals(ary, ary1)

importjava.util.Arrays;int[] ary = {1,2,3,4,5,6};int[] ary1 = {1,2,3,4,5,6};

System.out.println(Arrays.equals(ary, ary1));

四.List

使用 equals ()方法或

public static boolean isEquals(List list1,Listlist2){if(null != list1 && null !=list2){if(list1.containsAll(list2) &&list2.containsAll(list1)){return true;

}return false;

}return true;

}

基本数据类型用"==",引用类型用equals()。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值