华南俳烁实业有限公司

java

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

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

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

  1、編寫多線程程序有幾種實(shí)現(xiàn)方式?

  答:一種是繼承Thread類;另一種是實(shí)現(xiàn)Runnable接口。兩種方式都要通過重寫run()方法來定義線程的行為,推薦使用后者,因?yàn)镴ava中的繼承是單繼承,一個(gè)類有一個(gè)父類,如果繼承了Thread類就無法再繼承其他類了,顯然使用Runnable接口更為靈活。

  2、synchronized關(guān)鍵字的用法?

  答:synchronized關(guān)鍵字可以將對象或者方法標(biāo)記為同步,以實(shí)現(xiàn)對對象和方法的互斥訪問,可以用synchronized(對象) { … }定義同步代碼塊,或者在聲明方法時(shí)將synchronized作為方法的修飾符。

  3、舉例說明同步和異步。

  答:如果系統(tǒng)中存在臨界資源(資源數(shù)量少于競爭資源的線程數(shù)量的資源),例如正在寫的數(shù)據(jù)以后可能被另一個(gè)線程讀到,或者正在讀的數(shù)據(jù)可能已經(jīng)被另一個(gè)線程寫過了,那么這些數(shù)據(jù)就必須進(jìn)行同步存取(數(shù)據(jù)庫操作中的排他鎖就是最好的例子)。當(dāng)應(yīng)用程序在對象上調(diào)用了一個(gè)需要花費(fèi)很長時(shí)間來執(zhí)行的方法,并且不希望讓程序等待方法的返回時(shí),就應(yīng)該使用異步編程,在很多情況下采用異步途徑往往更有效率。事實(shí)上,所謂的同步就是指阻塞式操作,而異步就是非阻塞式操作。

  4、簡述synchronized 和java.util.concurrent.locks.Lock的異同?

  答:Lock是Java 5以后引入的新的API,和關(guān)鍵字synchronized相比主要相同點(diǎn):Lock 能完成synchronized所實(shí)現(xiàn)的所有功能;主要不同點(diǎn):Lock有比synchronized更精確的線程語義和更好的性能,而且不強(qiáng)制性的要求一定要獲得鎖。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且最好在finally 塊中釋放(這是釋放外部資源的最好的地方)

  5、事務(wù)的ACID是指什么?

  答:

  - 原子性(Atomic):事務(wù)中各項(xiàng)操作,要么全做要么全不做,任何一項(xiàng)操作的失敗都會導(dǎo)致整個(gè)事務(wù)的失敗;

  - 一致性(Consistent):事務(wù)結(jié)束后系統(tǒng)狀態(tài)是一致的;

  - 隔離性(Isolated):并發(fā)執(zhí)行的事務(wù)彼此無法看到對方的中間狀態(tài);

  - 持久性(Durable):事務(wù)完成后所做的改動都會被持久化,即使發(fā)生災(zāi)難性的失敗。通過日志和同步備份可以在故障發(fā)生后重建數(shù)據(jù)。

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

  • 地區(qū):
  • 姓名:
  • 手機(jī):
責(zé)編:yangliu1997
  • 會計(jì)考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學(xué)歷考試
宁津县| 仙游县| 来安县| 朝阳县| 宁国市| 茌平县| 潜山县| 太康县| 万荣县| 丹阳市| 尼木县| 于都县| 辽宁省| 达尔| 肇东市| 荥经县| 肥城市| 吉木萨尔县| 宜都市| 宁都县| 库车县| 偏关县| 丽水市| 莆田市| 秦皇岛市| 松江区| 鹤峰县| 洪雅县| 师宗县| 专栏| 绩溪县| 河西区| 嵊泗县| 博野县| 昌黎县| 周至县| 文登市| 和政县| 德清县| 曲阜市| 赤壁市|