2021年最新面試筆試題目參考_第1頁
2021年最新面試筆試題目參考_第2頁
2021年最新面試筆試題目參考_第3頁
2021年最新面試筆試題目參考_第4頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、最新IT面試筆試題目參考IT面試筆試題目難嗎?求職面試時,面試官一般都會問你一些問題,也可能是通過問卷的形式提問,怎么回答才是最好的呢?這里給大家分享一些IT面試筆試題目,希望對大家有所幫助。Java多線程面試題:線程并發(fā)面試題1、Sleep()、suspend()和wait()之間有什么區(qū)別?Thread.sleep()使當(dāng)前線程在指定的時間處于“非運行”(Not Runnable)狀態(tài)。線程一直持有對象的監(jiān)視器。比如一個線程當(dāng)前在一個同步塊或同步方法中,其它線程不能進(jìn)入該塊或方法中。如果另一線程調(diào)用了interrupt()方法,它將喚醒那個“睡眠的”線程。注意:sleep()是一個靜態(tài)方法

2、。這意味著只對當(dāng)前線程有效,一個常見的錯誤是調(diào)用t.sleep(),(這里的t是一個不同于當(dāng)前線程的線程)。即便是執(zhí)行t.sleep(),也是當(dāng)前線程進(jìn)入睡眠,而不是t線程。t.suspend()是過時的方法,使用suspend()導(dǎo)致線程進(jìn)入停滯狀態(tài),該線程會一直持有對象的監(jiān)視器,suspend()容易引起死鎖問題。object.wait()使當(dāng)前線程出于“不可運行”狀態(tài),和sleep()不同的是wait是object的方法而不是thread。調(diào)用object.wait()時,線程先要獲取這個對象的對象鎖,當(dāng)前線程必須在鎖對象保持同步,把當(dāng)前線程添加到等待隊列中,隨后另一線程可以同步同一個對

3、象鎖來調(diào)用object.notify(),這樣將喚醒原來等待中的線程,然后釋放該鎖。基本上wait()/notify()與sleep()/interrupt()類似,只是前者需要獲取對象鎖。2、什么是線程餓死,什么是活鎖?當(dāng)所有線程阻塞,或者由于需要的資源無效而不能處理,不存在非阻塞線程使資源可用。JavaAPI中線程活鎖可能發(fā)生在以下情形:當(dāng)所有線程在程序中執(zhí)行Object.wait(0),參數(shù)為0的wait方法。程序?qū)l(fā)生活鎖直到在相應(yīng)的對象上有線程調(diào)用Object.notify()或者Object.notifyAll()。當(dāng)所有線程卡在無限循環(huán)中。3、什么是Java Timer類?如何創(chuàng)

4、建一個有特定時間間隔的任務(wù)?java.util.Timer是一個工具類,可以用于安排一個線程在未來的某個特定時間執(zhí)行。Timer類可以用安排一次性任務(wù)或者周期任務(wù)。java.util.TimerTask是一個實現(xiàn)了Runnable接口的抽象類,我們需要去繼承這個類來創(chuàng)建我們自己的定時任務(wù)并使用Timer去安排它的執(zhí)行。4、Java中的同步集合與并發(fā)集合有什么區(qū)別?同步集合與并發(fā)集合都為多線程和并發(fā)提供了合適的線程安全的集合,不過并發(fā)集合的可擴展性更高。在Java1.5之前程序員們只有同步集合來用且在多線程并發(fā)的時候會導(dǎo)致爭用,阻礙了系統(tǒng)的擴展性。Java5介紹了并發(fā)集合像ConcurrentH

5、ashMap,不僅提供線程安全還用鎖分離和 內(nèi)部分區(qū)等現(xiàn)代技術(shù)提高了可擴展性。5、同步方法和同步塊,哪個是更好的選擇?同步塊是更好的選擇,因為它不會鎖住整個對象(當(dāng)然你也可以讓它鎖住整個對象)。同步方法會鎖住整個對象,哪怕這個類中有多個不相關(guān)聯(lián)的同步塊,這通常會導(dǎo)致他們停止執(zhí)行并需要等待獲得這個對象上的鎖。6、什么是線程池? 為什么要使用它?創(chuàng)建線程要花費昂貴的資源和時間,如果任務(wù)來了才創(chuàng)建線程那么響應(yīng)時間會變長,而且一個進(jìn)程能創(chuàng)建的線程數(shù)有限。為了避免這些問題,在程序啟動的時候就創(chuàng)建若干線程來響應(yīng)處理,它們被稱為線程池,里面的線程叫工作線程。從JDK1.5開始,Java API提供了Exec

6、utor框架讓你可以創(chuàng)建不同的線程池。比如單線程池,每次處理一個任務(wù);數(shù)目固定的線程池或者是緩存線程池(一個適合很多生存期短的任務(wù)的程序的可擴展線程池)。7、Java中invokeAndWait 和 invokeLater有什么區(qū)別?這兩個方法是Swing API 提供給Java開發(fā)者用來從當(dāng)前線程而不是事件派發(fā)線程更新GUI組件用的。InvokeAndWait()同步更新GUI組件,比如一個進(jìn)度條,一旦進(jìn)度更新了,進(jìn)度條也要做出相應(yīng)改變。如果進(jìn)度被多個線程跟蹤,那么就調(diào)用invokeAndWait()方法請求事件派發(fā)線程對組件進(jìn)行相應(yīng)更新。而invokeLater()方法是異步調(diào)用更新組件的

7、。8、多線程中的忙循環(huán)是什么?忙循環(huán)就是程序員用循環(huán)讓一個線程等待,不像傳統(tǒng)方法wait(), sleep() 或 yield() 它們都放棄了CPU控制,而忙循環(huán)不會放棄CPU,它就是在運行一個空循環(huán)。這么做的目的是為了保留CPU緩存。在多核系統(tǒng)中,一個等待線程醒來的時候可能會在另一個內(nèi)核運行,這樣會重建緩存。為了避免重建緩存和減少等待重建的時間就可以使用它了。Angular面試題匯總及答案1、什么是Angular?Angular是基于typescript編程語言的,開源的網(wǎng)絡(luò)應(yīng)用開發(fā)框架。是由谷歌倡導(dǎo)開發(fā)和維護的。它使用簡單,功能強大,可以快速搭建前端網(wǎng)絡(luò)應(yīng)用。它提供了很多非常優(yōu)秀的功能,

8、比如說聲明性的模板,依賴注入,端到端的工具,等等可以為網(wǎng)絡(luò)應(yīng)用開發(fā)提供便利。2、解釋Angular 2應(yīng)用程序的生命周期hooks是什么?Angular 2組件/指令具有生命周期事件,是由angular/core管理的。angular/core會創(chuàng)建組件,渲染它,創(chuàng)建并呈現(xiàn)它的后代。當(dāng)angular/core的數(shù)據(jù)綁定屬性更改時,處理就會更改,在從DOM中刪除其模板之前,就會銷毀掉它。Angular提供了一組生命周期hooks(特殊事件),可以被分接到生命周期中,并在需要時執(zhí)行操作。構(gòu)造函數(shù)會在所有生命周期事件之前執(zhí)行。每個接口都有一個前綴為ng的hook方法。例如,ngOnint界面的OnI

9、nit方法,這個方法必須在組件中實現(xiàn)。3、事件發(fā)射器如何在Angular 2中工作的?Angular 2不具有雙向digest cycle,這是與Angular 1不同的。在Angular2中,組件中發(fā)生的任何改變總是從當(dāng)前組件傳播到其所有子組件中。如果一個子組件的更改需要反映到其父組件的層次結(jié)構(gòu)中,我們可以通過使用事件發(fā)射器api來發(fā)出事件。簡而言之,EventEmitter是在 angular/core模塊中定義的類,由組件和指令使用,用來發(fā)出自定義事件。4、如何優(yōu)化Angular 2應(yīng)用程序來獲得更好的性能?優(yōu)化取決于應(yīng)用程序的類型和大小以及許多其他因素。一般來說,在優(yōu)化Angular

10、2應(yīng)用程序時要考慮以下幾點:1)考慮AOT編譯。2)確保應(yīng)用程序已經(jīng)經(jīng)過了捆綁,uglify和tree shaking。3)確保應(yīng)用程序不存在不必要的import語句。4)確保應(yīng)用中已經(jīng)移除了不使用的第三方庫。5)所有dependencies 和dev-dependencies都是明確分離的。6)如果應(yīng)用程序較大時,我會考慮延遲加載而不是完全捆綁的應(yīng)用程序。5、什么是Shadow DOM?它如何幫助Angular 2更好地執(zhí)行?Shadow DOM是HTML規(guī)范的一部分,它允許開發(fā)人員封裝自己的HTML標(biāo)記,CSS樣式和JavaScript。Shadow DOM以及其它一些技術(shù),使開發(fā)人員能夠

11、像標(biāo)簽一樣構(gòu)建自己的一級標(biāo)簽,Web組件和API??偟膩碚f,這些新的標(biāo)簽和API被稱為Web組件。Shadow DOM通過提供了更好的關(guān)注分離,通過其它的HTML DOM元素實現(xiàn)了更少的樣式與腳本的沖突。因為shadow DOM本質(zhì)上是靜態(tài)的,同時也是開發(fā)人員無法訪問的,所以它是一個很好的候選對象。因為它緩存的DOM將在瀏覽器中呈現(xiàn)得更快,并提供更好的性能。此外,還可以相對很好地管理shadow DOM,同時檢測Angular 2應(yīng)用的改變,并且可以有效地管理視圖的重新繪制。6、service怎么使用?AngularJS中你可以創(chuàng)建自己的服務(wù),或使用內(nèi)建服務(wù)。使用Module的provider

12、方法;使用Module的factory方法;使用Module的service方法;三種方法的比較:需要在config中進(jìn)行全局配置的話,只能選擇provider方法,factory和service是使用比較頻繁的創(chuàng)建服務(wù)的方法。它們之間的唯一區(qū)別是:service方法用于注入的結(jié)果通常是new出來的對象,factory方法注入的結(jié)果通常是一系列的functions;provider是創(chuàng)建服務(wù)最為復(fù)雜的方法,除非你需要創(chuàng)建一個可以復(fù)用的代碼段并且需要進(jìn)行全局配置,才需要使用provider創(chuàng)建;所有具有特定性目的的對象都是通過factory方法去創(chuàng)建。7、Angular和Angular js的區(qū)

13、別是什么?Angular js支持的是mvc設(shè)計模型。Angular是基于組件和directives的。Angular支持依賴注入,Angular js不支持。Angular js的ng directive需要image, 屬性和一個事件, angular只需要括號和方括號來綁定數(shù)據(jù)屬性和事件就可以了 。Angular js不支持移動設(shè)備的開發(fā)。Angular 支持手機開發(fā)。Angular js的首推語言是JavaScript。Angular的首推語言是type script.路徑設(shè)置上,angular js使用的是route provider。Angular使用的是route config.

14、在開發(fā)速度上,Angular要快于Angular js。在運行速度上,angular也要快于angular js。Angular的整個程序的架構(gòu)比angular js更清晰,更簡單,更容易維護。目前Angular js已經(jīng)沒有官方的維護和更新支持了。Angular官方維護和更新都做得很好。8、Angular的核心部件有哪些?共有9個,一個是components,另外一個是data binding,再一個是dependency injection, 然后是directives,再就是metadata,然后是modules,再就是routing,還有services,最后一個是template。9

15、、什么是數(shù)據(jù)綁定?在Angular中有幾種方式?連接程序中的數(shù)據(jù)跟視圖的方式稱為數(shù)據(jù)綁定。一共有三種方式。一種是事件綁定,這種方式使得應(yīng)用程序可以對用戶的輸入做出反應(yīng)。另一種是屬性綁定。這種方式是從應(yīng)用數(shù)據(jù)向html傳遞數(shù)據(jù)。最后一種方式是雙向綁定。這種綁定可以支持用程序數(shù)據(jù)的修改影響視圖,同時視圖上數(shù)據(jù)的改動也會影響到應(yīng)用程序的數(shù)據(jù)。10、Angular中有哪些事件?click, copy, cut, dbclick, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseover, mous

16、eup, blur.史上最全Database工程師題庫1、 查詢Student表中的所有記錄的Sname、Ssex和Class列。2、 查詢教師所有的單位即不重復(fù)的Depart列。3、 查詢Student表的所有記錄。4、 查詢Score表中成績在60到80之間的所有記錄。5、 查詢Score表中成績?yōu)?5,86或88的記錄。6、 查詢Student表中“95031”班或性別為“女”的同學(xué)記錄。7、 以Class降序查詢Student表的所有記錄。8、 以Cno升序、Degree降序查詢Score表的所有記錄。9、 查詢“95031”班的學(xué)生人數(shù)。10、查詢Score表中的最高分的學(xué)生學(xué)號和課

17、程號。11、查詢3-105號課程的平均分。12、查詢Score表中至少有5名學(xué)生選修的并以3開頭的課程的平均分?jǐn)?shù)。13、查詢最低分大于70,最高分小于90的Sno列。14、查詢所有學(xué)生的Sname、Cno和Degree列。15、查詢所有學(xué)生的Sno、Cname和Degree列。16、查詢所有學(xué)生的Sname、Cname和Degree列。17、查詢“95033”班所選課程的平均分。18、假設(shè)使用如下命令建立了一個grade表:create table grade(low number(3,0),upp number(3),rank char(1);into grade values(90,100,A);into grade values(80,89,B);into grade values(70,79,C);into grade values(60,69,D);into grade values(0,59,E);commit;現(xiàn)查詢所有同學(xué)的Sno、Cno和rank列。19、查詢選修“3-105”課程的成績高于“109”號同學(xué)成績的所有同學(xué)的記錄。20、查詢score中選學(xué)一門以上課程的同學(xué)中分?jǐn)?shù)為非最高分成績的記錄。21、查詢成績高于學(xué)號為“109”、課程號為“3-105”的成績的所有記錄。22、查詢和學(xué)號為108的同學(xué)同年出生的所有學(xué)生的Sno、Sname和Sbirthday

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論