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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

object.wait()使當(dāng)前線程出于“不成運行”狀態(tài),和sleep()不同的是wait是object的方法而不是thread。調(diào)用object.wait()時,線程先要獲取這個對象的對象鎖,當(dāng)前線程務(wù)必在鎖對象保持同步,把當(dāng)前線程添加到等待隊列中,隨后另一線程可以同步同一個對象鎖來調(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、什么是JavaTimer類?如何創(chuàng)造一個有特定時間間隔的任務(wù)?

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

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

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

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

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

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

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

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

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

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

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

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

7、Java中invokeAndWait和invokeLater有什么識別?

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

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

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)秀的功能,譬如說聲明性的模板,憑借注入,端到端的工具,等等可以為網(wǎng)絡(luò)應(yīng)用開發(fā)供給便利。

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

Angular2組件/指令具有生命周期事情,是由@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界面的OnInit方法,這個方法務(wù)必在組件中實現(xiàn)。

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

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

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

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

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

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)用程序較大時,我會考慮延遲加載而不是完全捆綁的應(yīng)用程序。

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

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

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

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

6、service怎么使用?

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

使用Module的provider方法;

使用Module的factory方法;

使用Module的service方法;

三種方法的對比:

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

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

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

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

7、Angular和Angularjs的識別是什么?

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

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

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

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

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

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

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

在運行速度上,angular也要快于angularjs。

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

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

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

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

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

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

一共有三種方式。一種是事情綁定,這種方式使得應(yīng)用程序可以對用戶的輸入做出回響。另一種是屬性綁定。這種方式是從應(yīng)用數(shù)據(jù)向html傳遞數(shù)據(jù)。結(jié)果一種方式是雙向綁定。這種綁定可以支持用程序數(shù)據(jù)的修改影響視圖,同時視圖上數(shù)據(jù)的改動也會影響到應(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表中勞績在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é)號和課程號。

11、查詢‘3-105’號課程的平均分。

12、查詢Score表中至少有5名學(xué)生選修的并以3開頭的課程的平均分數(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è)使用如下命令建立了一個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等.壓縮文件請下載最新的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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論