zoukankan      html  css  js  c++  java
  • java中==与equals

    • ==

      ==可用于比较基本类型与引用类型,对于基本类型变量比较的是其存储的值是否相等,对于引用类型则比较的是其是否指向同一个对象。

    如:

    int a = 10;
    int b = 20;
    double d = 10.0;

    a==b的结果为false,由于a与b的值不相等;

    a==d的结果为true,由于a与d的值相等。

    Keyboard objOne = new Keyboard();
    Keyboard objTwo = new Keyboard();
    Keyboard objThree = objOne;

    objOne == objTwo的结果为false,由于objOne与objTwo指向不同的对象;

    objOne == objThree的结果为true,由于objOne与objThree指向同一个对象。

    • equals

      equals只能用于引用类型变量的比较,如果没有对equals方法进行重写,比较的是其是否指向同一个对象。

    如:

    Keyboard objOne = new Keyboard();
    Keyboard objTwo = new Keyboard();
    Keyboard objThree = objOne;

    objOne.equals(objTwo)的结果为false,由于objOne与objTwo指向不同的对象;

    objOne.equals(objThree)的结果为true,由于objOne与objThree指向同一个对象。

    • String类对equals方法进行了重写,用来比较指向的字符串对象所存储的字符串是否相等

    如:

    String str1 = new String("hello");
    String str2 = new String("hello");
    String str3 = new String("good");

    str1.equals(str2)的结果为true,由于str1与str2所指向的字符串对象存储的字符串相等;

    str1.equals(str3)的结果为false,由于str1与str3所指向的字符串对象存储的字符串不相等。

    上例中str1==str2的结果则为false,因为str1、str2指向不同的对象。

    又如:

    String str4 = "hello";
    String str5 = "hello";

    str4 == str5的结果为true,这里是由于str4、str5指向同一个字符串对象。

    也即是说只创建了一个“hello”对象,与new方式每次都创建一个新的对象不同。

  • 相关阅读:
    Ubuntu 下安装Mongodb
    iOS 配置支付宝
    Spring异步任务处理,@Async的配置和使用
    [Tue, 11 Aug 2015 ~ Mon, 17 Aug 2015] Deep Learning in arxiv
    linux-shell脚本命令之awk
    字符串写入文件
    UVa 10773
    Flex下拉框
    DELPHI dbgrid 选中的是第几行 怎么判断?
    delphi 取得数据集某字段值的六种方法
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/7172293.html
Copyright © 2011-2022 走看看