最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Java Object你真的了解了嗎

 更新時間:2017年03月29日 10:14:52   投稿:jingxian  
下面小編就為大家?guī)硪黄P(guān)于Java Object你真的了解了嗎。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

導(dǎo)讀: 在平時的coding中hashCode()和equals()的使用的場景有哪些?clone深復(fù)制怎么實(shí)現(xiàn)?wait()和notify()有什么作用?finalize()方法干嘛的?看似coding中使用的不多,不重要,但是有沒有跟我一樣,想好好的了解一下的。畢竟是基礎(chǔ)中的基礎(chǔ)。

下面給出一個簡單比較全面的概要:

1. hashCode()和equals()

public boolean equals(Object obj) {return (this == obj);}

public native int hashCode();

1.當(dāng)equals()方法被override時,hashCode()也要被override.

2.當(dāng)equals()返回true,hashcode一定相等。即:相等(相同)的對象必須具有相等的哈希碼(或者散列碼)

3.如果兩個對象的hashCode相同,它們并不一定相同。

4.在集合查找時,hashcode能大大降低對象比較次數(shù),提高查找效率!

在判斷重復(fù)元素時,直接通過hashcode()方法,定位到桶位置,如果該位置有元素,再調(diào)用equals()方法判斷是否相等。而不是遍歷每一個元素比較equals()!

2. clone() 深復(fù)制

public class Animal implements Cloneable {
  private int height;
  private int age;

  public Animal(int height, int age){
    this.height = height;
    this.age = age;
  }

  @Override
  public Object clone() throws CloneNotSupportedException {
    return super.clone();
  }
}


public class People implements Cloneable {
  private int height;
  private int age;
  private Animal a;

  public People(int height, int age,Animal a){
    this.height = height;
    this.age = age;
    this.a = a;
  }

  @Override
  public Object clone() throws CloneNotSupportedException {
    People p = (People) super.clone();
    p.a = (Animal) a.clone();
    return p;
  }

}

Animal a1 = new Animal(100,3);
People p1 = new People(173,24,a1);
//深復(fù)制
People p2 = (People) p1.clone();

3. wait()和notify()

•只有獲得該對象鎖之后才能調(diào)用,否則拋IllegalMonitorStateException異常

•任何一個時刻,對象的控制權(quán)(monitor)只能被一個線程擁有。

線程取得控制權(quán)的方法有三:

1. 執(zhí)行對象的某個同步實(shí)例方法。

2. 執(zhí)行對象對應(yīng)類的同步靜態(tài)方法。

3. 執(zhí)行對該對象加同步鎖的同步塊。

執(zhí)行對該對象加同步鎖的示例:

  synchronized (pepoleObject) {
    pepoleObject.notifyAll();
    pepoleObject.wait();
  }

4. finalize()

當(dāng)垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾加收器調(diào)用此方法,只能調(diào)用一次。當(dāng)對象被回收時需要配置系統(tǒng)資源或執(zhí)行其他清除,子類重寫finalize方法實(shí)現(xiàn)。

以上這篇關(guān)于Java Object你真的了解了嗎就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中sdk與jdk的區(qū)別詳細(xì)解析

    java中sdk與jdk的區(qū)別詳細(xì)解析

    以下是對java中sdk與jdk的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-08-08
  • Javaweb實(shí)現(xiàn)上傳下載文件的多種方法

    Javaweb實(shí)現(xiàn)上傳下載文件的多種方法

    本篇文章主要介紹了Javaweb實(shí)現(xiàn)上傳下載文件,有多種實(shí)現(xiàn)方式,需要的朋友可以參考下。
    2016-10-10
  • 如何使用spring ResponseEntity處理http響應(yīng)

    如何使用spring ResponseEntity處理http響應(yīng)

    這篇文章主要介紹了如何使用spring ResponseEntity處理http響應(yīng)的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • String類的獲取功能、轉(zhuǎn)換功能

    String類的獲取功能、轉(zhuǎn)換功能

    這篇文章給大家介紹了String類的獲取功能:String類的基本獲取功能、獲取功能的舉例子、String類的基本轉(zhuǎn)換功能、轉(zhuǎn)換功能的舉例子。具體詳情大家參考下本文
    2018-04-04
  • JVM中的守護(hù)線程示例詳解

    JVM中的守護(hù)線程示例詳解

    這篇文章主要給大家介紹了關(guān)于JVM中守護(hù)線程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Java spring定時任務(wù)詳解

    Java spring定時任務(wù)詳解

    這篇文章主要為大家詳細(xì)介紹了Spring定時任務(wù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-10-10
  • SpringCloud @RefreshScope刷新機(jī)制深入探究

    SpringCloud @RefreshScope刷新機(jī)制深入探究

    RefeshScope這個注解想必大家都用過,在微服務(wù)配置中心的場景下經(jīng)常出現(xiàn),他可以用來刷新Bean中的屬性配置,那大家對他的實(shí)現(xiàn)原理了解嗎?它為什么可以做到動態(tài)刷新呢
    2023-03-03
  • jxls2.4.5如何動態(tài)導(dǎo)出excel表頭與數(shù)據(jù)

    jxls2.4.5如何動態(tài)導(dǎo)出excel表頭與數(shù)據(jù)

    這篇文章主要介紹了jxls2.4.5如何動態(tài)導(dǎo)出excel表頭與數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • XML操作類庫XStream使用詳解

    XML操作類庫XStream使用詳解

    這篇文章主要給大家介紹了關(guān)于XML操作類庫XStream使用的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 詳解Java枚舉類在生產(chǎn)環(huán)境中的使用方式

    詳解Java枚舉類在生產(chǎn)環(huán)境中的使用方式

    本文主要介紹了Java枚舉類在生產(chǎn)環(huán)境中的使用方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02

最新評論

张家界市| 雅江县| 环江| 九龙坡区| 洪泽县| 榆中县| 通辽市| 清水河县| 太和县| 南岸区| 新营市| 宁安市| 奈曼旗| 湟源县| 共和县| 凤凰县| 和平区| 班戈县| 海晏县| 池州市| 贵德县| 武宣县| 弥渡县| 德令哈市| 鸡东县| 荃湾区| 昌宁县| 永德县| 万源市| 襄樊市| 瑞金市| 陈巴尔虎旗| 鲜城| 德州市| 绥棱县| 龙门县| 长汀县| 大同县| 瑞丽市| 关岭| 荣昌县|