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

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

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

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

下面給出一個(gè)簡單比較全面的概要:

1. hashCode()和equals()

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

public native int hashCode();

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

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

3.如果兩個(gè)對(duì)象的hashCode相同,它們并不一定相同。

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

在判斷重復(fù)元素時(shí),直接通過hashcode()方法,定位到桶位置,如果該位置有元素,再調(diào)用equals()方法判斷是否相等。而不是遍歷每一個(gè)元素比較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()

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

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

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

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

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

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

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

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

4. finalize()

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

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

相關(guān)文章

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

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

    以下是對(duì)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à)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    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ì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Java spring定時(shí)任務(wù)詳解

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

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

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

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

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

    這篇文章主要介紹了jxls2.4.5如何動(dòng)態(tài)導(dǎo)出excel表頭與數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    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ì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02

最新評(píng)論

龙南县| 福泉市| 云梦县| 阿拉尔市| 昌乐县| 扎兰屯市| 康平县| 遵义县| 北辰区| 涟水县| 上林县| 阿勒泰市| 娄烦县| 库伦旗| 宝兴县| 铜陵市| 乌审旗| 西贡区| 陇西县| 穆棱市| 绍兴县| 句容市| 北海市| 清苑县| 凉城县| 罗源县| 绥德县| 璧山县| 皮山县| 民权县| 维西| 凯里市| 怀安县| 漯河市| 瑞丽市| 蓬莱市| 上林县| 镇雄县| 寿宁县| 清原| 新竹县|