Java 中 == 和 equals() 的区别

Java 中 == 和 equals() 的区别

==:

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

equals():

  • 用来比较两个对象的内容是否相等;
  • equals() 方法不能用于基本数据类型的比较。
测试一:基本数据类型比较
    int i = 24;
    int j = 24;
    System.out.println(i == j); // true
    //System.out.println(i.equals(j)); // error
测试二:引用数据类型比较
    Integer i1 = new Integer(8);
    Integer i2 = new Integer(8);
    System.out.println(i1 == i2); // false
    System.out.println(i1.equals(i2)); // true
测试三:字符串比较

首先,我们知道 String 是不可变对象,一经创建就不能再修改,所有的修改操作其实都是创建新的 Striing 对象。并且创建字符串有两种方法,直接赋值和 new String()

直接赋值测试:

	String s1 = "kobe";
    String s2 = "kobe";
    System.out.println(s1.equals(s2)); // true
    System.out.println(s1 == s2);// true:"kobe" 是字符串常量,s1、s2两个引用都指向这个对象

    s1 = "bryant"; // s1 指向另一个对象
    System.out.println(s1.equals(s2)); // false
    System.out.println(s1 == s2); // false

new String() 测试:

	String s3 = new String("abc");
    String s4 = new String("abc");
    System.out.println(s3.equals(s4)); // true
    System.out.println(s3 == s4); // false

直接赋值和 new String() 测试:

	String s5 = "string";
    String s6 = new String("string");
    System.out.println(s5.equals(s6)); // true
    System.out.println(s5 == s6); // false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值