在java面試中,面試官一般會(huì)就你所應(yīng)聘的崗位進(jìn)行相關(guān)知識(shí)的考察,只要你通過(guò)了面試官的考核,就可以順利通過(guò)面試勝任java職位,那面試官問(wèn)我java技術(shù)棧怎么回答?下面來(lái)我們就來(lái)給大家講解一下。
其實(shí)技術(shù)棧就是你掌握了一堆的技術(shù)(掌握多種技術(shù)),所以你只要回答你掌握的技術(shù)以及做的項(xiàng)目就可以了!
以下是java技術(shù)棧面試題:
1.線程有哪些狀態(tài)?
線程通常都有五種狀態(tài),創(chuàng)建、就緒、運(yùn)行、阻塞和死亡。
創(chuàng)建狀態(tài)。在生成線程對(duì)象,并沒(méi)有調(diào)用該對(duì)象的start方法,這是線程處于創(chuàng)建狀態(tài)。
就緒狀態(tài)。當(dāng)調(diào)用了線程對(duì)象的start方法之后,該線程就進(jìn)入了就緒狀態(tài),但是此時(shí)線程調(diào)度程序還沒(méi)有把該線程設(shè)置為當(dāng)前線程,此時(shí)處于就緒狀態(tài)。在線程運(yùn)行之后,從等待或者睡眠中回來(lái)之后,也會(huì)處于就緒狀態(tài)。
運(yùn)行狀態(tài)。線程調(diào)度程序?qū)⑻幱诰途w狀態(tài)的線程設(shè)置為當(dāng)前線程,此時(shí)線程就進(jìn)入了運(yùn)行狀態(tài),開始運(yùn)行run函數(shù)當(dāng)中的代碼。
阻塞狀態(tài)。線程正在運(yùn)行的時(shí)候,被暫停,通常是為了等待某個(gè)時(shí)間的發(fā)生(比如說(shuō)某項(xiàng)資源就緒)之后再繼續(xù)運(yùn)行。sleep,suspend,wait等方法都可以導(dǎo)致線程阻塞。
死亡狀態(tài)。如果一個(gè)線程的run方法執(zhí)行結(jié)束或者調(diào)用stop方法后,該線程就會(huì)死亡。對(duì)于已經(jīng)死亡的線程,無(wú)法再使用start方法令其進(jìn)入就緒。
2.try-catch-finally 中哪個(gè)部分可以省略?
答:catch 可以省略
原因:
更為嚴(yán)格的說(shuō)法其實(shí)是:try只適合處理運(yùn)行時(shí)異常,try+catch適合處理運(yùn)行時(shí)異常+普通異常。也就是說(shuō),如果你只用try去處理普通異常卻不加以catch處理,編譯是通不過(guò)的,因?yàn)榫幾g器硬性規(guī)定,普通異常如果選擇捕獲,則必須用catch顯示聲明以便進(jìn)一步處理。而運(yùn)行時(shí)異常在編譯時(shí)沒(méi)有如此規(guī)定,所以catch可以省略,你加上catch編譯器也覺(jué)得無(wú)可厚非。
理論上,編譯器看任何代碼都不順眼,都覺(jué)得可能有潛在的問(wèn)題,所以你即使對(duì)所有代碼加上try,代碼在運(yùn)行期時(shí)也只不過(guò)是在正常運(yùn)行的基礎(chǔ)上加一層皮。但是你一旦對(duì)一段代碼加上try,就等于顯示地承諾編譯器,對(duì)這段代碼可能拋出的異常進(jìn)行捕獲而非向上拋出處理。如果是普通異常,編譯器要求必須用catch捕獲以便進(jìn)一步處理;如果運(yùn)行時(shí)異常,捕獲然后丟棄并且+finally掃尾處理,或者加上catch捕獲以便進(jìn)一步處理。
至于加上finally,則是在不管有沒(méi)捕獲異常,都要進(jìn)行的“掃尾”處理。
3.說(shuō)一下 mybatis 的一級(jí)緩存和二級(jí)緩存?
一級(jí)緩存: 基于 PerpetualCache 的 HashMap 本地緩存,其存儲(chǔ)作用域?yàn)?Session,當(dāng) Session flush 或 close 之后,該 Session 中的所有 Cache 就將清空,默認(rèn)打開一級(jí)緩存。
二級(jí)緩存與一級(jí)緩存其機(jī)制相同,默認(rèn)也是采用 PerpetualCache,HashMap 存儲(chǔ),不同在于其存儲(chǔ)作用域?yàn)? Mapper(Namespace),并且可自定義存儲(chǔ)源,如 Ehcache。默認(rèn)不打開二級(jí)緩存,要開啟二級(jí)緩存,使用二級(jí)緩存屬性類需要實(shí)現(xiàn)Serializable序列化接口(可用來(lái)保存對(duì)象的狀態(tài)),可在它的映射文件中配置 ;
對(duì)于緩存數(shù)據(jù)更新機(jī)制,當(dāng)某一個(gè)作用域(一級(jí)緩存 Session/二級(jí)緩存Namespaces)的進(jìn)行了C/U/D 操作后,默認(rèn)該作用域下所有 select 中的緩存將被 clear。
在學(xué)習(xí)java的過(guò)程中我們需要掌握很多java技術(shù)棧,這樣不僅能夠順利通過(guò)面試進(jìn)入到j(luò)ava行業(yè)中,也能提高自己的技能,有一個(gè)光明的前途!最后大家如果想要了解更多Java面試題知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“面試官問(wèn)我java技術(shù)棧怎么回答?附j(luò)ava技術(shù)棧面試題”已幫助 68 人
免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579