IT面試筆試題目參考_第1頁
IT面試筆試題目參考_第2頁
IT面試筆試題目參考_第3頁
IT面試筆試題目參考_第4頁
IT面試筆試題目參考_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——IT面試筆試題目參考最新IT面試筆試題目參考

IT面試筆試題目難嗎?求職面試時(shí),面試官一般都會(huì)問你一些問題,也可能是通過問卷的形式提問,怎么回復(fù)才是最好的呢?這里給大家共享一些IT面試筆試題目,夢(mèng)想對(duì)大家有所扶助。

Java多線程面試題:線程并發(fā)面試題

1、Sleep()、suspend()和wait()之間有什么識(shí)別?

Thread.sleep()使當(dāng)前線程在指定的時(shí)間處于“非運(yùn)行”(NotRunnable)狀態(tài)。線程一向持有對(duì)象的監(jiān)視器。譬如一個(gè)線程當(dāng)前在一個(gè)同步塊或同步方法中,其它線程不能進(jìn)入該塊或方法中。假設(shè)另一線程調(diào)用了interrupt()方法,它將喚醒那個(gè)“睡眠的”線程。

留神:sleep()是一個(gè)靜態(tài)方法。這意味著只對(duì)當(dāng)前線程有效,一個(gè)常見的錯(cuò)誤是調(diào)用t.sleep(),(這里的t是一個(gè)不同于當(dāng)前線程的線程)。即便是執(zhí)行t.sleep(),也是當(dāng)前線程進(jìn)入睡眠,而不是t線程。t.suspend()是過時(shí)的方法,使用suspend()導(dǎo)致線程進(jìn)入停滯狀態(tài),該線程會(huì)一向持有對(duì)象的監(jiān)視器,suspend()輕易引起死鎖問題。

object.wait()使當(dāng)前線程出于“不成運(yùn)行”狀態(tài),和sleep()不同的是wait是object的方法而不是thread。調(diào)用object.wait()時(shí),線程先要獲取這個(gè)對(duì)象的對(duì)象鎖,當(dāng)前線程務(wù)必在鎖對(duì)象保持同步,把當(dāng)前線程添加到等待隊(duì)列中,隨后另一線程可以同步同一個(gè)對(duì)象鎖來調(diào)用object.notify(),這樣將喚醒原來等待中的線程,然后釋放該鎖。根本上wait()/notify()與sleep()/interrupt()類似,只是前者需要獲取對(duì)象鎖。

2、什么是線程餓死,什么是活鎖?

當(dāng)全體線程阻塞,或者由于需要的資源無效而不能處理,不存在非阻塞線程使資源可用。JavaAPI中線程活鎖可能發(fā)生在以下情形:

當(dāng)全體線程在程序中執(zhí)行Object.wait(0),參數(shù)為0的wait方法。程序?qū)l(fā)生活鎖直到在相應(yīng)的對(duì)象上有線程調(diào)用Object.notify()或者Object.notifyAll()。

當(dāng)全體線程卡在無限循環(huán)中。

3、什么是JavaTimer類?如何創(chuàng)造一個(gè)有特定時(shí)間間隔的任務(wù)?

java.util.Timer是一個(gè)工具類,可以用于安置一個(gè)線程在未來的某個(gè)特定時(shí)間執(zhí)行。Timer類可以用安置一次性任務(wù)或者周期任務(wù)。

java.util.TimerTask是一個(gè)實(shí)現(xiàn)了Runnable接口的抽象類,我們需要去繼承這個(gè)類來創(chuàng)造我們自己的定時(shí)任務(wù)并使用Timer去安置它的執(zhí)行。

4、Java中的同步集合與并發(fā)集合有什么識(shí)別?

同步集合與并發(fā)集合都為多線程和并發(fā)供給了適合的線程安好的集合,不過并發(fā)集合的可擴(kuò)展性更高。

在Java1.5之前程序員們只有同步集合來用且在多線程并發(fā)的時(shí)候會(huì)導(dǎo)致爭(zhēng)用,阻礙了系統(tǒng)的擴(kuò)展性。

Java5介紹了并發(fā)集合像ConcurrentHashMap,不僅供給線程安好還用鎖分開和內(nèi)片面區(qū)等現(xiàn)代技術(shù)提高了可擴(kuò)展性。

5、同步方法和同步塊,哪個(gè)是更好的選擇?

同步塊是更好的選擇,由于它不會(huì)鎖住整個(gè)對(duì)象(當(dāng)然你也可以讓它鎖住整個(gè)對(duì)象)。同步方法會(huì)鎖住整個(gè)對(duì)象,哪怕這個(gè)類中有多個(gè)不相關(guān)聯(lián)的同步塊,這通常會(huì)導(dǎo)致他們中斷執(zhí)行并需要等待獲得這個(gè)對(duì)象上的鎖。

6、什么是線程池?為什么要使用它?

創(chuàng)造線程要花費(fèi)昂貴的資源和時(shí)間,假設(shè)任務(wù)來了才創(chuàng)造線程那么響應(yīng)時(shí)間會(huì)變長(zhǎng),而且一個(gè)進(jìn)程能創(chuàng)造的線程數(shù)有限。

為了制止這些問題,在程序啟動(dòng)的時(shí)候就創(chuàng)造若干線程來響應(yīng)處理,它們被稱為線程池,里面的線程叫工作線程。

從JDK1.5開頭,JavaAPI供給了Executor框架讓你可以創(chuàng)造不同的線程池。譬如單線程池,每次處理一個(gè)任務(wù);數(shù)目固定的線程池或者是緩存線程池(一個(gè)適合好多生存期短的任務(wù)的程序的可擴(kuò)展線程池)。

7、Java中invokeAndWait和invokeLater有什么識(shí)別?

這兩個(gè)方法是SwingAPI供給給Java開發(fā)者用來從當(dāng)前線程而不是事情派發(fā)線程更新GUI組件用的。InvokeAndWait()同步更新GUI組件,譬如一個(gè)進(jìn)度條,一旦進(jìn)度更新了,進(jìn)度條也要做出相應(yīng)變更。

假設(shè)進(jìn)度被多個(gè)線程跟蹤,那么就調(diào)用invokeAndWait()方法苦求事情派發(fā)線程對(duì)組件舉行相應(yīng)更新。而invokeLater()方法是異步調(diào)用更新組件的。

8、多線程中的忙循環(huán)是什么?

忙循環(huán)就是程序員用循環(huán)讓一個(gè)線程等待,不像傳統(tǒng)方法wait(),sleep()或yield()它們都放棄了CPU操縱,而忙循環(huán)不會(huì)放棄CPU,它就是在運(yùn)行一個(gè)空循環(huán)。這么做的目的是為了留存CPU緩存。

在多核系統(tǒng)中,一個(gè)等待線程醒來的時(shí)候可能會(huì)在另一個(gè)內(nèi)核運(yùn)行,這樣會(huì)重建緩存。為了制止重建緩存和裁減等待重建的時(shí)間就可以使用它了。

Angular面試題匯總及答案

1、什么是Angular?

Angular是基于typescript編程語言的,開源的網(wǎng)絡(luò)應(yīng)用開發(fā)框架。是由谷歌倡導(dǎo)開發(fā)和維護(hù)的。它使用簡(jiǎn)樸,功能強(qiáng)大,可以快速搭建前端網(wǎng)絡(luò)應(yīng)用。

它供給了好多分外優(yōu)秀的功能,譬如說聲明性的模板,憑借注入,端到端的工具,等等可以為網(wǎng)絡(luò)應(yīng)用開發(fā)供給便利。

2、解釋Angular2應(yīng)用程序的生命周期hooks是什么?

Angular2組件/指令具有生命周期事情,是由@angular/core管理的。@angular/core會(huì)創(chuàng)造組件,渲染它,創(chuàng)造并呈現(xiàn)它的后代。

當(dāng)@angular/core的數(shù)據(jù)綁定屬性更改時(shí),處理就會(huì)更改,在從DOM中刪除其模板之前,就會(huì)銷毀掉它。Angular供給了一組生命周期hooks(特殊事情),可以被分接到生命周期中,并在需要時(shí)執(zhí)行操作。

構(gòu)造函數(shù)會(huì)在全體生命周期事情之前執(zhí)行。每個(gè)接口都有一個(gè)前綴為ng的hook方法。例如,ngOnint界面的OnInit方法,這個(gè)方法務(wù)必在組件中實(shí)現(xiàn)。

3、事情放射器如何在Angular2中工作的?

Angular2不具有雙向digestcycle,這是與Angular1不同的。在Angular2中,組件中發(fā)生的任何變更總是從當(dāng)前組件傳播到其全體子組件中。假設(shè)一個(gè)子組件的更改需要反映到其父組件的層次布局中,我們可以通過使用事情放射器api來發(fā)出事情。

簡(jiǎn)而言之,EventEmitter是在@angular/core模塊中定義的類,由組件和指令使用,用來發(fā)出自定義事情。

4、如何優(yōu)化Angular2應(yīng)用程序來獲得更好的性能?

優(yōu)化取決于應(yīng)用程序的類型和大小以及大量其他因素。一般來說,在優(yōu)化Angular2應(yīng)用程序時(shí)要考慮以下幾點(diǎn):

1)考慮AOT編譯。

2)確保應(yīng)用程序已經(jīng)經(jīng)過了捆綁,uglify和treeshaking。

3)確保應(yīng)用程序不存在不必要的import語句。

4)確保應(yīng)用中已經(jīng)移除了不使用的第三方庫。

5)全體dependencies和dev-dependencies都是明確分開的。

6)假設(shè)應(yīng)用程序較大時(shí),我會(huì)考慮延遲加載而不是完全捆綁的應(yīng)用程序。

5、什么是ShadowDOM?它如何扶助Angular2更好地執(zhí)行?

ShadowDOM是HTML模范的一片面,它允許開發(fā)人員封裝自己的HTML標(biāo)記,CSS樣式和JavaScript。ShadowDOM以及其它一些技術(shù),使開發(fā)人員能夠像標(biāo)簽一樣構(gòu)建自己的一級(jí)標(biāo)簽,Web組件和API??偟膩碚f,這些新的標(biāo)簽和API被稱為Web組件。ShadowDOM通過供給了更好的關(guān)注分開,通過其它的HTMLDOM元素實(shí)現(xiàn)了更少的樣式與腳本的沖突。

由于shadowDOM本質(zhì)上是靜態(tài)的,同時(shí)也是開發(fā)人員無法訪問的,所以它是一個(gè)很好的候選對(duì)象。由于它緩存的DOM將在欣賞器中呈現(xiàn)得更快,并供給更好的性能。

此外,還可以相對(duì)很好地管理shadowDOM,同時(shí)檢測(cè)Angular2應(yīng)用的變更,并且可以有效地管理視圖的重新繪制。

6、service怎么使用?

AngularJS中你可以創(chuàng)造自己的服務(wù),或使用內(nèi)建服務(wù)。

使用Module的provider方法;

使用Module的factory方法;

使用Module的service方法;

三種方法的對(duì)比:

需要在config中舉行全局配置的話,只能選擇provider方法,factory和service是使用對(duì)比頻繁的創(chuàng)造服務(wù)的方法。

它們之間的唯一識(shí)別是:service方法用于注入的結(jié)果通常是new出來的對(duì)象,factory方法注入的結(jié)果通常是一系列的functions;

provider是創(chuàng)造服務(wù)最為繁雜的方法,除非你需要?jiǎng)?chuàng)造一個(gè)可以復(fù)用的代碼段并且需要舉行全局配置,才需要使用provider創(chuàng)造;

全體具有特定性目的的對(duì)象都是通過factory方法去創(chuàng)造。

7、Angular和Angularjs的識(shí)別是什么?

Angularjs支持的是mvc設(shè)計(jì)模型。Angular是基于組件和directives的。

Angular支持憑借注入,Angularjs不支持。

Angularjs的ngdirective需要image,屬性和一個(gè)事情,angular只需要括號(hào)和方括號(hào)來綁定數(shù)據(jù)屬性和事情就可以了。

Angularjs不支持移動(dòng)設(shè)備的開發(fā)。Angular支持手機(jī)開發(fā)。

Angularjs的首推語言是JavaScript。Angular的首推語言是typescript.

路徑設(shè)置上,angularjs使用的是routeprovider。Angular使用的是routeconfig.

在開發(fā)速度上,Angular要快于Angularjs。

在運(yùn)行速度上,angular也要快于angularjs。

Angular的整個(gè)程序的架構(gòu)比angularjs更明顯,更簡(jiǎn)樸,更輕易維護(hù)。

目前Angularjs已經(jīng)沒有官方的維護(hù)和更新支持了。Angular官方維護(hù)和更新都做得很好。

8、Angular的核心部件有哪些?

共有9個(gè),一個(gè)是components,另外一個(gè)是databinding,再一個(gè)是dependencyinjection,然后是directives,再就是metadata,然后是modules,再就是routing,還有services,結(jié)果一個(gè)是template。

9、什么是數(shù)據(jù)綁定?在Angular中有幾種方式?

連接程序中的數(shù)據(jù)跟視圖的方式稱為數(shù)據(jù)綁定。

一共有三種方式。一種是事情綁定,這種方式使得應(yīng)用程序可以對(duì)用戶的輸入做出回響。另一種是屬性綁定。這種方式是從應(yīng)用數(shù)據(jù)向html傳遞數(shù)據(jù)。結(jié)果一種方式是雙向綁定。這種綁定可以支持用程序數(shù)據(jù)的修改影響視圖,同時(shí)視圖上數(shù)據(jù)的改動(dòng)也會(huì)影響到應(yīng)用程序的數(shù)據(jù)。

10、Angular中有哪些事情?

click,copy,cut,dbclick,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseover,mouseup,blur.

史上最全Database工程師題庫

1、查詢Student表中的全體記錄的Sname、Ssex和Class列。

2、查詢教師全體的單位即不重復(fù)的Depart列。

3、查詢Student表的全體記錄。

4、查詢Score表中勞績(jī)?cè)?0到80之間的全體記錄。

5、查詢Score表中勞績(jī)?yōu)?5,86或88的記錄。

6、查詢Student表中“95031”班或性別為“女”的同學(xué)記錄。

7、以Class降序查詢Student表的全體記錄。

8、以Cno升序、Degree降序查詢Score表的全體記錄。

9、查詢“95031”班的學(xué)生人數(shù)。

10、查詢Score表中的最高分的學(xué)生學(xué)號(hào)和課程號(hào)。

11、查詢‘3-105’號(hào)課程的平均分。

12、查詢Score表中至少有5名學(xué)生選修的并以3開頭的課程的平均分?jǐn)?shù)。

13、查詢最低分大于70,最高分小于90的Sno列。

14、查詢?nèi)w學(xué)生的Sname、Cno和Degree列。

15、查詢?nèi)w學(xué)生的Sno、Cname和Degree列。

16、查詢?nèi)w學(xué)生的Sname、Cname和Degree列。

17、查詢“95033”班所選課程的平均分。

18、假設(shè)使用如下命令建立了一個(gè)grade表:

createtablegrade(lownumber(3,0),uppnumber(3),rankchar(1));

intogradevalues(90,100,’A’);

intogradevalues(80,89,’B’);

in

溫馨提示

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

評(píng)論

0/150

提交評(píng)論