==与equals的区别

妖狐艹你老母 2021-09-28 02:04 673阅读 0赞

==与equals的区别

1、equals的默认实现实际上使用了==来比较两个对象是否相等,但是equals对于integer、String等类的比较方法进行了重写,比较的是两个对象的内容是否相等。

2、==对于基本类型而言,比较值是否相等,对于对象而言,比较的是两个对象的地址是否相同(即是否指向同一个对象)。

1)对于integer,如果依然坚持用==来比较,有一些需要注意的地方。对于[-128,127]区间的数,有一个缓存,因此:

  1. Integer a = 127;
  2. Integer b = 127;
  3. System.out.println(a == b); //true
  4. Integer a = 128;
  5. Integer b = 128;
  6. System.out.println(a == b); //false
  7. Integer a = new Integer(127);
  8. Integer b = 127;
  9. //(new一个对象,该对象会在堆上被新建)
  10. System.out.println(a == b); //false

2)对于String,因为它有一个常量池,所以:

  1. String a = 'aa' + 'bb';
  2. String b = 'aabb';
  3. System.out.println(a == b); //true
  4. String a = 'aa' + 'bb';
  5. String b = new String('aabb');
  6. //(new一个对象,该对象会在堆上被新建)
  7. System.out.println(a == b); //false

发表评论

表情:
评论列表 (有 0 条评论,673人围观)

还没有评论,来说两句吧...

相关阅读

    相关 equals==区别

    equals与==的区别如下: 1. ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。== 比较的是变量

    相关 equals==区别

    equals和==是Java中用于比较两个对象或两个值是否相等的两种不同方法,它们之间存在一些重要的区别。 ==: 这是一个比较运算符,用于比较两个变量的值是否相等。

    相关 equals==区别

    以下都是Java的基础面试题,相信大家都会有种及眼熟又陌生的感觉、看过可能在短暂的面试后又马上忘记了。JavaPub在这里整理这些容易忘记的重点知识及解答,`建议收藏,经常温习

    相关 ==equals区别

    ==用于基本数据类型比较的是值,对于引用类型比较的是地址 euqals常用于比较引用类型,比较值和地址 ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量

    相关 String == equals区别

    在学习,面试中,常常会出现 == 与 equals有什么区别。经过总结,主要区别如下: == :比较字符窜引用的地址是否相同。 equals:比较字符窜的内容是否相同。