9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學(xué)習(xí)啦 > 知識大全 > 知識百科 > 公共基礎(chǔ)知識 > ==和equals的區(qū)別

==和equals的區(qū)別

時(shí)間: 映芳735 分享

==和equals的區(qū)別

  ==操作比較的是兩個(gè)變量的值是否相等,對于引用型變量表示的是兩個(gè)變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同。

  比較的是一個(gè)對象在內(nèi)存中的地址值,

  比如2個(gè)字符串對象

  String s1 = new String("str");

  String s2 = new String("str");

  如果用==號比較,會返回false,因?yàn)閯?chuàng)建了兩個(gè)對象,他們在內(nèi)存中地址的位置是不一樣的。

  equals操作表示的兩個(gè)變量是否是對同一個(gè)對象的引用,即堆中的內(nèi)容是否相同。

  equals的情況比較復(fù)雜,它是java.lang.Object類中的一個(gè)方法。因?yàn)閖ava中所有的類都默認(rèn)繼承于Object,所以所有的類都有這個(gè)方法。

  在Object類源碼中是這樣寫的。

  public boolean equals(Object obj) {

  return (this == obj);

  }

  他同樣使用==號進(jìn)行內(nèi)存地址的比較。但是許多java類中都重寫了這個(gè)方法,比如String。

  public boolean equals(Object anObject) {

  if (this == anObject) {

  return true;

  }

  if (anObject instanceof String) {

  String anotherString = (String)anObject;

  int n = count;

  if (n == anotherString.count) {

  char v1[] = value;

  char v2[] = anotherString.value;

  int i = offset;

  int j = anotherString.offset;

  while (n-- != 0) {

  if (v1[i++] != v2[j++])

  return false;

  }

  return true;

  }

  }

  return false;

  }

  String里的方法,如果==號比較不相等,還會進(jìn)行一下值的比較。

  所以equals方法具體的作用要看當(dāng)前的那個(gè)類是如何實(shí)現(xiàn)重寫父類中該方法的。如果沒有重寫該方法,那么他和==號等價(jià)。

530126 主站蜘蛛池模板: 真人性囗交视频| 四虎影视库国产精品一区| 不卡国产一区二区三区| 视频一区视频二区在线视频| 亚洲国产综合一区二区精品| 免费a级毛片无码av| 亚洲色偷偷色噜噜狠狠99| 亚洲一区二区三区在线播放无码 | 美日韩精品一区三区二区| 日韩中文字幕精品人妻| 国产伦一区二区三区久久| 欧美视频免费一区二区三区| 国产成人精品午夜二三区| 国产午夜福利视频合集| 推油少妇久久99久久99久久| 国产精品白丝久久AV网站| 精品视频福利| 国产专区一va亚洲v天堂| 久久夜色国产噜噜亚洲av| 另类 专区 欧美 制服| 亚洲AV永久纯肉无码精品动漫| 国产亚洲av夜间福利香蕉149| 日韩一区二区三区日韩精品| 亚洲av成人无码精品电影在线| 亚洲人成电影在线天堂色| 免费无码又爽又刺激网站直播| 美欧日韩一区二区三区视频| 国偷自产一区二区三区在线视频| 中文无码日韩欧免费视频| 精品国产女同疯狂摩擦2| 国产精品成人亚洲一区二区| 无码人妻斩一区二区三区| 成全影院电视剧在线观看| 精品无码国产自产拍在线观看蜜| 日韩熟妇中文色在线视频| 在线观看成人年视频免费| 丝袜老师办公室里做好紧好爽| 久久夜色撩人精品国产av| av色国产色拍| 国产伦码精品一区二区| 日日猛噜噜狠狠扒开双腿小说|