华南俳烁实业有限公司

java

當(dāng)前位置:中華考試網(wǎng) >> java >> java面試題 >> 文章內(nèi)容

2020java常見面試題及答案:第五部分

來源:中華考試網(wǎng)  [2020年10月2日]  【

  ConcurrentHashMap的增刪改查如何保證線程安全

  增(put(K key, V value)):在一個for死循環(huán)中,判斷hash值對應(yīng)的數(shù)組位置上是否有值,沒有值則通過CAS操作添加數(shù)據(jù)。添加成功跳出循環(huán),添加操作結(jié)束,對數(shù)組加一。操作失敗則通過synchronized對數(shù)組中的第一個節(jié)點加鎖添加數(shù)據(jù),也即會對整條鏈表加鎖。

  刪(remove(Object key)):在一個for死循環(huán)中,判斷當(dāng)前map為空,或者數(shù)組對應(yīng)的位置上為null,則表示沒有值,返回null。否則也是通過synchronized對數(shù)組中的第一個節(jié)點加鎖刪除數(shù)據(jù)。

  查(get(Object key)):先判斷map不為空,對應(yīng)的數(shù)組位置上也有元素,即不能等于null,如果不滿足則返回null。然后先判斷數(shù)組位置上的這個元素是否與傳入?yún)?shù)key相等,相等則直接返回。不相等則遍歷鏈表,直到找到key相等的節(jié)點,否則返回null。

  final、finally、finalize區(qū)別

  final:可以用來修飾類、方法、成員變量。修飾類表示該類不能被集成,修飾方法表示該方法不能被重寫,修飾成員變量表示該成員變量的值不能被修改。

  finally:一般配合try……catch使用,用來保證程序不論是正常執(zhí)行或是拋出異常或是中途return,都會執(zhí)行finally中的代碼。

  finalized:這是配合GC的一個方法,在GC回收前都會先執(zhí)行該方法。但由于致命缺陷已被廢棄。

  抽象類和接口的不同區(qū)別

  (1)抽象類是一個類,只能被繼承,一次只能繼承一個抽象類。而接口可以被一次實現(xiàn)多個。

  (2)抽象類可以有構(gòu)造方法,接口沒有。但是這兩個都不能有自己的實例對象。

  (3)抽象類的修飾符可以是public、private、protect、默認(rèn),但接口只能是public(JDK8后添加了關(guān)鍵字default,但這個default不等同于抽象類的默認(rèn))。

  (4)抽象類中可以有抽象方法也可以沒有抽象方法。接口中的方法都是沒有方法體的。(JDK1.8后增加了default和static關(guān)鍵字可以在接口中寫方法體)

  填寫下面表單即可預(yù)約申請免費試聽!害怕學(xué)不會?助教全程陪讀,隨時解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可全國推薦就業(yè)!

預(yù)約申請免費聽課

  • 地區(qū):
  • 姓名:
  • 手機:
責(zé)編:yangliu1997
  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
义乌市| 龙井市| 灵武市| 德兴市| 沙洋县| 黎平县| 渑池县| 鹿邑县| 沽源县| 泸水县| 东明县| 汾阳市| 修文县| 江山市| 老河口市| 通渭县| 湘西| 临漳县| 满城县| 鄱阳县| 梓潼县| 化州市| 新巴尔虎右旗| 平塘县| 麦盖提县| 三门县| 牡丹江市| 隆德县| 沅陵县| 巴彦县| 丁青县| 罗平县| 日土县| 漯河市| 遵化市| 秭归县| 海晏县| 永丰县| 牟定县| 庄河市| 江阴市|