JavaSEUnity教程合集首页投稿(暂停使用,暂停投稿)

探秘“==”与“equals()”的区别

2016-09-20  本文已影响1084人  廖少少

本文采用总分总的小学生写作手法较为深入地探究了“==”与“equals()”的区别 :-)

概括

“==”是什么?

  1. 是什么?
    “==”或等号操作在Java编程语言中是一个二元操作符,用于比较原生类型和对象。就原生类型如boolean、int、float来说,使用“==”来比较两者,这个很好掌握,比如1=1。但是在比较对象的时候,就会与equals()造成困惑。

  2. 原理:
    “==”对比两个对象基于内存引用,如果两个对象的引用完全相同(指向同一个对象)时,“==”操作将返回true,否则返回false。

  3. 编程示例:
    class AnotherClass{

     }
     public class EqualsTest {
         public static void main(String[] args) {
             //基本数据类型:int、float、double、boolean、char等 
             char ch1 = 'a';
             char ch2 = 'a';
             System.out.println("char比较结果:" + (ch1==ch2));
             
             int i1 = 100;
             int i2 = 100;
             System.out.println("int比较结果:" + (i1==i2));
             
             //字符串数据类型
             String str1 = new String("liaoshaoshao");
             String str2 = new String("liaoshaoshao");
             String str3 = str2;
             System.out.println("两个new出来的字符串比较结果:" + (str1==str2));
             System.out.println("赋值出来的字符串比较结果:" + (str3==str2));
             
             //对象
             AnotherClass ac1 = new AnotherClass();
             AnotherClass ac2 = new AnotherClass();
             AnotherClass ac3 = ac2;
             System.out.println("两个new出来的对象比较结果:" + (ac1==ac2));
             System.out.println("赋值出来的对象比较结果:" + (ac3==ac2));
         }
     }
    

    控制台输出:
    char比较结果:true
    int比较结果:true
    两个new出来的字符串比较结果:false
    赋值出来的字符串比较结果:true
    两个new出来的对象比较结果:false
    赋值出来的对象比较结果:true

"equals()"是什么?

总结:

引申阅读:
https://www.zhihu.com/question/26872848

学生一枚,难免有错误之处,请各位大神斧正。

上一篇下一篇

猜你喜欢

热点阅读