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方式每次都创建一个新的对象不同。

  • 相关阅读:
    编程题目分类
    sicily 1010 Zipper DP
    Sicily 2501. 算算式
    続・いいかげんにして! 日本企業─理不尽な態度
    いいかげんにして! 日本企業─中国に嫌われる理由
    中国オフショア開発の失敗を減らす組織的対策とは?
    中国オフショア開発の成功と失敗の実態
    そんな指示じゃできません!中国企業の叫び
    【Postgres】dump数据库备份与还原
    PMP考试相关
  • 原文地址:https://www.cnblogs.com/deltadeblog/p/7172293.html
Copyright © 2011-2022 走看看