



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Java軟件測(cè)試面試題IT占領(lǐng)大部分的崗位,那么其中的Java軟件測(cè)試是許多人都喜愛(ài)的,下面我共享Java軟件測(cè)試面試題,希望幫助到大家!Java中什么是競(jìng)態(tài)條件?舉個(gè)例子講明。競(jìng)態(tài)條件會(huì)導(dǎo)致程序在并發(fā)情況下出現(xiàn)一些bugs。多線(xiàn)程對(duì)一些資源的競(jìng)爭(zhēng)的時(shí)候就會(huì)產(chǎn)生競(jìng)態(tài)條件,假如首先要履行的程序競(jìng)爭(zhēng)失敗排到后面履行了,那么全部程序就會(huì)出現(xiàn)一些不確定的bugs。這種bugs很難發(fā)現(xiàn)而且會(huì)反復(fù)出現(xiàn),由于線(xiàn)程間的隨機(jī)競(jìng)爭(zhēng)。一個(gè)例子就是無(wú)序處理,詳見(jiàn)答案。Java中怎樣停止一個(gè)線(xiàn)程?Java提供了很豐富的API但沒(méi)有為停止線(xiàn)程提供API。JDK1.0原來(lái)有一些像stop(),suspend()和resum
2、e()的控制方法但是由于潛在的死鎖威脅因而在后續(xù)的JDK版本中他們被棄用了,之后JavaAPI的設(shè)計(jì)者就沒(méi)有提供一個(gè)兼容且線(xiàn)程安全的方法來(lái)停止一個(gè)線(xiàn)程。當(dāng)run()或者call()方法履行完的時(shí)候線(xiàn)程會(huì)自動(dòng)結(jié)束,假如要手動(dòng)結(jié)束一個(gè)線(xiàn)程,你能夠用volatile布爾變量來(lái)退出run()方法的循環(huán)或者是取消任務(wù)來(lái)中止線(xiàn)程。點(diǎn)擊這里查看示例代碼。一個(gè)線(xiàn)程運(yùn)行時(shí)發(fā)生異常會(huì)如何?這是我在一次面試中碰到的一個(gè)很刁鉆的Java面試題,簡(jiǎn)單的講,假如異常沒(méi)有被捕獲該線(xiàn)程將會(huì)停止履行。Thread.UncaughtExceptionHandler是用于處理未捕獲異常造成線(xiàn)程忽然中止情況的一個(gè)內(nèi)嵌接口。當(dāng)一個(gè)未捕
3、獲異常將造成線(xiàn)程中止的時(shí)候JVM會(huì)使用Thread.getUncaughtExceptionHandler()來(lái)查詢(xún)線(xiàn)程的UncaughtExceptionHandler并將線(xiàn)程和異常作為參數(shù)傳遞給handler的uncaughtException()方法進(jìn)行處理。什么是線(xiàn)程?線(xiàn)程是操作系統(tǒng)能夠進(jìn)行運(yùn)算調(diào)度的最小單位,它被包括在進(jìn)程之中,是進(jìn)程中的實(shí)際運(yùn)作單位。程序員能夠通過(guò)它進(jìn)行多處理器編程,你能夠使用多線(xiàn)程對(duì)運(yùn)算密集型任務(wù)提速。比方,假如一個(gè)線(xiàn)程完成一個(gè)任務(wù)要100毫秒,那么用十個(gè)線(xiàn)程完成改任務(wù)只需10毫秒。Java在語(yǔ)言層面對(duì)多線(xiàn)程提供了卓著的支持,它也是一個(gè)很好的賣(mài)點(diǎn)。欲了解更多具體信
4、息請(qǐng)點(diǎn)擊這里。線(xiàn)程和進(jìn)程有什么區(qū)別?線(xiàn)程是進(jìn)程的子集,一個(gè)進(jìn)程能夠有許多線(xiàn)程,每條線(xiàn)程并行履行不同的任務(wù)。不同的進(jìn)程使用不同的內(nèi)存空間,而所有的線(xiàn)程分享一片一樣的內(nèi)存空間。別把它和棧內(nèi)存搞混,每個(gè)線(xiàn)程都擁有單獨(dú)的棧內(nèi)存用來(lái)存儲(chǔ)當(dāng)?shù)財(cái)?shù)據(jù)。更多具體信息請(qǐng)點(diǎn)擊這里。怎樣在Java中實(shí)現(xiàn)線(xiàn)程?在語(yǔ)言層面有兩種方式。java.lang.Thread類(lèi)的實(shí)例就是一個(gè)線(xiàn)程但是它需要調(diào)用java.lang.Runnable接口來(lái)履行,由于線(xiàn)程類(lèi)自己就是調(diào)用的Runnable接口所以你能夠繼承java.lang.Thread類(lèi)或者直接調(diào)用Runnable接口來(lái)重寫(xiě)run()方法實(shí)現(xiàn)線(xiàn)程。更多具體信息請(qǐng)點(diǎn)擊這里.
5、用Runnable還是Thread?這個(gè)問(wèn)題是上題的后續(xù),大家都知道我們能夠通過(guò)繼承Thread類(lèi)或者調(diào)用Runnable接口來(lái)實(shí)現(xiàn)線(xiàn)程,問(wèn)題是,那個(gè)方法更好呢?什么情況下使用它?這個(gè)問(wèn)題很容易回答,假如你知道Java不支持類(lèi)的多重繼承,但允許你調(diào)用多個(gè)接口。所以假如你要繼承其他類(lèi),當(dāng)然是調(diào)用Runnable接口好了。更多具體信息請(qǐng)點(diǎn)擊這里。Thread類(lèi)中的start()和run()方法有什么區(qū)別?這個(gè)問(wèn)題經(jīng)常被問(wèn)到,但還是能從此區(qū)分出頭具名試者對(duì)Java線(xiàn)程模型的理解水平。start()方法被用來(lái)啟動(dòng)新開(kāi)創(chuàng)建立的線(xiàn)程,而且start()內(nèi)部調(diào)用了run()方法,這和直接調(diào)用run()方法的
6、效果不一樣。當(dāng)你調(diào)用run()方法的時(shí)候,只會(huì)是在原來(lái)的線(xiàn)程中調(diào)用,沒(méi)有新的線(xiàn)程啟動(dòng),start()方法才會(huì)啟動(dòng)新線(xiàn)程。更多討論請(qǐng)點(diǎn)擊這里Java中Runnable和Callable有什么不同?Runnable和Callable都代表那些要在不同的線(xiàn)程中履行的任務(wù)。Runnable從JDK1.0開(kāi)始就有了,Callable是在JDK1.5增長(zhǎng)的。它們的重要區(qū)別是Callable的call()方法能夠返回值和拋出異常,而Runnable的run()方法沒(méi)有這些功能。Callable能夠返回裝載有計(jì)算結(jié)果的Future對(duì)象。我的博客有更具體的講明。Java中CyclicBarrier和CountD
7、ownLatch有什么不同?CyclicBarrier和CountDownLatch都能夠用來(lái)讓一組線(xiàn)程等待其它線(xiàn)程。與CyclicBarrier不同的是,CountdownLatch不能從新使用。點(diǎn)此查看更多信息和示例代碼。Java內(nèi)存模型是什么?Java內(nèi)存模型規(guī)定和指引Java程序在不同的內(nèi)存架構(gòu)、CPU和操作系統(tǒng)間有確定性地行為。它在多線(xiàn)程的情況下尤其主要。Java內(nèi)存模型對(duì)一個(gè)線(xiàn)程所做的變動(dòng)能被其它線(xiàn)程可見(jiàn)提供了保證,它們之間是先行發(fā)生關(guān)系。這個(gè)關(guān)系定義了一些規(guī)則讓程序員在并發(fā)編程時(shí)思路更清楚明晰。比方,先行發(fā)生關(guān)系確保了:線(xiàn)程內(nèi)的代碼能夠按先后順序履行,這被稱(chēng)為程序順序規(guī)則。對(duì)于同
8、一個(gè)鎖,一個(gè)解鎖操作一定要發(fā)生在時(shí)間上后發(fā)生的另一個(gè)鎖定操作之前,也叫做管程鎖定規(guī)則。前一個(gè)對(duì)volatile的寫(xiě)操作在后一個(gè)volatile的讀操作之前,也叫volatile變量規(guī)則。一個(gè)線(xiàn)程內(nèi)的任何操作必須在這個(gè)線(xiàn)程的start()調(diào)用之后,也叫作線(xiàn)程啟動(dòng)規(guī)則。一個(gè)線(xiàn)程的所有操作都會(huì)在線(xiàn)程終止之前,線(xiàn)程終止規(guī)則。一個(gè)對(duì)象的終結(jié)操作必須在這個(gè)對(duì)象構(gòu)造完成之后,也叫對(duì)象終結(jié)規(guī)則。可傳遞性Java中的volatile變量是什么?volatile是一個(gè)特殊的修飾符,只要成員變量能力使用它。在Java并發(fā)程序缺少同步類(lèi)的情況下,多線(xiàn)程對(duì)成員變量的操尷尬刁難其它線(xiàn)程是透明的。volatile變量能夠保證下一個(gè)讀取操作會(huì)在前一個(gè)寫(xiě)操作之后發(fā)生,就是上一題的volatile變量規(guī)則。點(diǎn)擊這里查看更多volatile的相關(guān)內(nèi)容。什么是線(xiàn)程安全?Vector是一個(gè)線(xiàn)程安全類(lèi)嗎?假如你的代碼所在的進(jìn)程中有多個(gè)線(xiàn)程在同時(shí)運(yùn)行,而這些線(xiàn)程可能會(huì)同時(shí)運(yùn)行這段代碼。假如每次運(yùn)行結(jié)果和單線(xiàn)程運(yùn)行的結(jié)果是一樣的,而且其他的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 財(cái)務(wù)課題申報(bào)書(shū)范文
- 課題申報(bào)書(shū)高校
- 人文社科研究課題申報(bào)書(shū)
- 畜牧養(yǎng)殖課題申報(bào)書(shū)
- 課題申報(bào)書(shū)項(xiàng)目?jī)?nèi)容
- 課題申報(bào)書(shū)人員分工
- 婦科課題立項(xiàng)申報(bào)書(shū)
- 橫向科研課題申報(bào)書(shū)
- 單縣新房購(gòu)房合同范例
- 全款車(chē)輛抵押合同范本
- 2025年慢性阻塞性肺疾病全球創(chuàng)議GOLD指南修訂解讀課件
- 《PLC應(yīng)用技術(shù)(西門(mén)子S7-1200)第二版》全套教學(xué)課件
- 初中語(yǔ)文現(xiàn)代文閱讀訓(xùn)練及答案二十篇
- 基層醫(yī)療衛(wèi)生機(jī)構(gòu)崗位設(shè)置指導(dǎo)意見(jiàn)
- micro830和micro850可編程控制器手冊(cè)
- FSC-COC培訓(xùn)學(xué)習(xí)
- 焊接線(xiàn)能量的計(jì)算公式
- 醫(yī)用氧儲(chǔ)罐檢查記錄表
- 植物的營(yíng)養(yǎng)器官:根、莖、葉匯總
- 第三套廣播體操《七彩陽(yáng)光》分解動(dòng)作講解(共4頁(yè))
- 歷屆全國(guó)初中數(shù)學(xué)聯(lián)賽真題及答案
評(píng)論
0/150
提交評(píng)論