黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 2020年java編程筆試題及答案

2020年java編程筆試題及答案

更新時(shí)間:2020-02-11 09:57:51 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽5688次


2020年java編程筆試題及答案


  1、線程與進(jìn)程的區(qū)別?


  進(jìn)程是操作系統(tǒng)分配資源的最小單元,線程是操作系統(tǒng)調(diào)度的最小單元。


  一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程。


  2、什么是多線程中的上下文切換?


  多線程會(huì)共同使用一組計(jì)算機(jī)上的CPU,而線程數(shù)大于給程序分配的CPU數(shù)量時(shí),為了讓各個(gè)線程都有執(zhí)行的機(jī)會(huì),就需要輪轉(zhuǎn)使用CPU。不同的線程切換使用CPU發(fā)生的切換數(shù)據(jù)等就是上下文切換。


  3、死鎖與活鎖的區(qū)別,死鎖與饑餓的區(qū)別?


  死鎖:是指兩個(gè)或兩個(gè)以上的進(jìn)程(或線程)在執(zhí)行過(guò)程中,因爭(zhēng)奪資源而造成的一種互相等待的現(xiàn)象,若無(wú)外力作用,它們都將無(wú)法推進(jìn)下去。


  產(chǎn)生死鎖的必要條件:


  互斥條件:所謂互斥就是進(jìn)程在某一時(shí)間內(nèi)獨(dú)占資源。


  請(qǐng)求與保持條件:一個(gè)進(jìn)程因請(qǐng)求資源而阻塞時(shí),對(duì)已獲得的資源保持不放。


  不剝奪條件:進(jìn)程已獲得資源,在末使用完之前,不能強(qiáng)行剝奪。


  循環(huán)等待條件:若干進(jìn)程之間形成一種頭尾相接的循環(huán)等待資源關(guān)系。


  活鎖:任務(wù)或者執(zhí)行者沒(méi)有被阻塞,由于某些條件沒(méi)有滿足,導(dǎo)致一直重復(fù)嘗試,失敗,嘗試,失敗。


  活鎖和死鎖的區(qū)別在于,處于活鎖的實(shí)體是在不斷的改變狀態(tài),所謂的“活”,而處于死鎖的實(shí)體表現(xiàn)為等待;活鎖有可能自行解開(kāi),死鎖則不能。


  饑餓:一個(gè)或者多個(gè)線程因?yàn)榉N種原因無(wú)法獲得所需要的資源,導(dǎo)致一直無(wú)法執(zhí)行的狀態(tài)。


  Java中導(dǎo)致饑餓的原因:


  高優(yōu)先級(jí)線程吞噬所有的低優(yōu)先級(jí)線程的CPU時(shí)間。


  線程被永久堵塞在一個(gè)等待進(jìn)入同步塊的狀態(tài),因?yàn)槠渌€程總是能在它之前持續(xù)地對(duì)該同步塊進(jìn)行訪問(wèn)。


  線程在等待一個(gè)本身也處于永久等待完成的對(duì)象(比如調(diào)用這個(gè)對(duì)象的wait方法),因?yàn)槠渌€程總是被持續(xù)地獲得喚醒。


  4、什么是Executors框架?


  Executor框架是一個(gè)根據(jù)一組執(zhí)行策略調(diào)用,調(diào)度,執(zhí)行和控制的異步任務(wù)的框架。


  無(wú)限制的創(chuàng)建線程會(huì)引起應(yīng)用程序內(nèi)存溢出。所以創(chuàng)建一個(gè)線程池是個(gè)更好的的解決方案,因?yàn)榭梢韵拗凭€程的數(shù)量并且可以回收再利用這些線程。利用Executors框架可以非常方便的創(chuàng)建一個(gè)線程池。


  5、什么是阻塞隊(duì)列?阻塞隊(duì)列的實(shí)現(xiàn)原理是什么?如何使用阻塞隊(duì)列來(lái)實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者模型?


  阻塞隊(duì)列(BlockingQueue)是一個(gè)支持兩個(gè)附加操作的隊(duì)列。


  這兩個(gè)附加的操作是:在隊(duì)列為空時(shí),獲取元素的線程會(huì)等待隊(duì)列變?yōu)榉强铡.?dāng)隊(duì)列滿時(shí),存儲(chǔ)元素的線程會(huì)等待隊(duì)列可用。


  阻塞隊(duì)列常用于生產(chǎn)者和消費(fèi)者的場(chǎng)景,生產(chǎn)者是往隊(duì)列里添加元素的線程,消費(fèi)者是從隊(duì)列里拿元素的線程。阻塞隊(duì)列就是生產(chǎn)者存放元素的容器,而消費(fèi)者也只從容器里拿元素。


  JDK7提供了7個(gè)阻塞隊(duì)列。分別是:


  ArrayBlockingQueue:一個(gè)由數(shù)組結(jié)構(gòu)組成的有界阻塞隊(duì)列。


  LinkedBlockingQueue:一個(gè)由鏈表結(jié)構(gòu)組成的有界阻塞隊(duì)列。


  PriorityBlockingQueue:一個(gè)支持優(yōu)先級(jí)排序的無(wú)界阻塞隊(duì)列。


  DelayQueue:一個(gè)使用優(yōu)先級(jí)隊(duì)列實(shí)現(xiàn)的無(wú)界阻塞隊(duì)列。


  SynchronousQueue:一個(gè)不存儲(chǔ)元素的阻塞隊(duì)列。


  LinkedTransferQueue:一個(gè)由鏈表結(jié)構(gòu)組成的無(wú)界阻塞隊(duì)列。


  LinkedBlockingDeque:一個(gè)由鏈表結(jié)構(gòu)組成的雙向阻塞隊(duì)列。


  Java5之前實(shí)現(xiàn)同步存取時(shí),可以使用普通的一個(gè)集合,然后在使用線程的協(xié)作和線程同步可以實(shí)現(xiàn)生產(chǎn)者,消費(fèi)者模式,主要的技術(shù)就是用好,wait,notify,notifyAll,sychronized這些關(guān)鍵字。而在java5之后,可以使用阻塞隊(duì)列來(lái)實(shí)現(xiàn),此方式大大簡(jiǎn)少了代碼量,使得多線程編程更加容易,安全方面也有保障。


  BlockingQueue接口是Queue的子接口,它的主要用途并不是作為容器,而是作為線程同步的的工具,因此他具有一個(gè)很明顯的特性,當(dāng)生產(chǎn)者線程試圖向BlockingQueue放入元素時(shí),如果隊(duì)列已滿,則線程被阻塞,當(dāng)消費(fèi)者線程試圖從中取出一個(gè)元素時(shí),如果隊(duì)列為空,則該線程會(huì)被阻塞,正是因?yàn)樗哂羞@個(gè)特性,所以在程序中多個(gè)線程交替向BlockingQueue中放入元素,取出元素,它可以很好的控制線程之間的通信。


  阻塞隊(duì)列使用最經(jīng)典的場(chǎng)景就是socket客戶端數(shù)據(jù)的讀取和解析,讀取數(shù)據(jù)的線程不斷將數(shù)據(jù)放入隊(duì)列,然后解析線程不斷從隊(duì)列取數(shù)據(jù)解析。


  6、什么是Callable和Future?


  Callable接口類似于Runnable,從名字就可以看出來(lái)了,但是Runnable不會(huì)返回結(jié)果,并且無(wú)法拋出返回結(jié)果的異常,而Callable功能更強(qiáng)大一些,被線程執(zhí)行后,可以返回值,這個(gè)返回值可以被Future拿到,也就是說(shuō),F(xiàn)uture可以拿到異步執(zhí)行任務(wù)的返回值。


  可以認(rèn)為是帶有回調(diào)的Runnable。


  Future接口表示異步任務(wù),是還沒(méi)有完成的任務(wù)給出的未來(lái)結(jié)果。所以說(shuō)Callable用于產(chǎn)生結(jié)果,F(xiàn)uture用于獲取結(jié)果。


  7、什么是FutureTask?


  使用ExecutorService啟動(dòng)任務(wù)。


  在Java并發(fā)程序中FutureTask表示一個(gè)可以取消的異步運(yùn)算。它有啟動(dòng)和取消運(yùn)算、查詢運(yùn)算是否完成和取回運(yùn)算結(jié)果等方法。只有當(dāng)運(yùn)算完成的時(shí)候結(jié)果才能取回,如果運(yùn)算尚未完成get方法將會(huì)阻塞。一個(gè)FutureTask對(duì)象可以對(duì)調(diào)用了Callable和Runnable的對(duì)象進(jìn)行包裝,由于FutureTask也是調(diào)用了Runnable接口所以它可以提交給Executor來(lái)執(zhí)行。


  8、什么是競(jìng)爭(zhēng)條件?你怎樣發(fā)現(xiàn)和解決競(jìng)爭(zhēng)?


  當(dāng)多個(gè)進(jìn)程都企圖對(duì)共享數(shù)據(jù)進(jìn)行某種處理,而最后的結(jié)果又取決于進(jìn)程運(yùn)行的順序時(shí),則我們認(rèn)為這發(fā)生了競(jìng)爭(zhēng)條件(racecondition)。


  9、為什么我們調(diào)用start()方法時(shí)會(huì)執(zhí)行run()方法,為什么我們不能直接調(diào)用run()方法?


  當(dāng)你調(diào)用start()方法時(shí)你將創(chuàng)建新的線程,并且執(zhí)行在run()方法里的代碼。


  但是如果你直接調(diào)用run()方法,它不會(huì)創(chuàng)建新的線程也不會(huì)執(zhí)行調(diào)用線程的代碼,只會(huì)把run方法當(dāng)作普通方法去執(zhí)行。


  10、Java中你怎樣喚醒一個(gè)阻塞的線程?


  在Java發(fā)展史上曾經(jīng)使用suspend()、resume()方法對(duì)于線程進(jìn)行阻塞喚醒,但隨之出現(xiàn)很多問(wèn)題,比較典型的還是死鎖問(wèn)題。


  解決方案可以使用以對(duì)象為目標(biāo)的阻塞,即利用Object類的wait()和notify()方法實(shí)現(xiàn)線程阻塞。


  首先,wait、notify方法是針對(duì)對(duì)象的,調(diào)用任意對(duì)象的wait()方法都將導(dǎo)致線程阻塞,阻塞的同時(shí)也將釋放該對(duì)象的鎖,相應(yīng)地,調(diào)用任意對(duì)象的notify()方法則將隨機(jī)解除該對(duì)象阻塞的線程,但它需要重新獲取改對(duì)象的鎖,直到獲取成功才能往下執(zhí)行;其次,wait、notify方法必須在synchronized塊或方法中被調(diào)用,并且要保證同步塊或方法的鎖對(duì)象與調(diào)用wait、notify方法的對(duì)象是同一個(gè),如此一來(lái)在調(diào)用wait之前當(dāng)前線程就已經(jīng)成功獲取某對(duì)象的鎖,執(zhí)行wait阻塞后當(dāng)前線程就將之前獲取的對(duì)象鎖釋放。


2020年java編程筆試題及答案


      以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“2020年java編程筆試題及答案”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


相關(guān)推薦


最新最全java面試題及答案(初級(jí)到高級(jí))


史上最全的中高級(jí)JAVA工程師面試題及答案匯總


Java高級(jí)開(kāi)發(fā)工程師面試題


2019史上最全java面試題題庫(kù)大全800題


哪有資深java工程師面試題


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: sss亚洲| 天天操天天射天天舔 | 两个人看的www视频中文字幕 | 一本三道a无线码一区v小说 | 视频一区在线观看 | 麻豆成人在线视频 | 久久黄色小视频 | 日批视频在线观看 | 最近免费2019中文字幕大全 | xxxxxx日本人免费 | 动漫成年美女黄漫网站国产 | 最新免费黄色网址 | 在线观看国产高清免费不卡黄 | 亚洲欧美中文字幕高清在线一 | 一区二区三区四区日韩 | 欧美激情综合亚洲一二区 | 婷婷六月丁 | 一道本在线免费视频 | 欧美精品在线播放 | 日韩免费不卡 | 天堂网视频在线观看 | 日韩精品视频在线免费观看 | 欧美91精品久久久久网免费 | 中国国产高清一级毛片 | 夜鲁夜鲁夜鲁在线观看福利 | xxxx成年视频免费 | 天天干狠狠操 | 日韩欧美激情 | 日韩在线观看视频网站 | 国产激情久久久久影 | 成人免费视频软件网站 | 看全色黄大色黄女片做 | 国产精品久久久久久久免费 | 九色福利 | 免费乱理伦片手机在线观看 | 伊人网色| 久久精品国产一区 | 天天操天 | 一本一道波多野结衣456 | 色视频在线播放 | 国产精品国产三级在线高清观看 |