- 相關(guān)推薦
2017阿里巴巴招聘筆試題
下面CN人才網(wǎng)小編為大家?guī)淼氖?017阿里巴巴招聘筆試題,你答對了幾題,有實(shí)力進(jìn)入阿里巴巴嗎?
1、iBatis相比JDBC優(yōu)勢的優(yōu)勢有哪些?
答:簡單易上手、開發(fā)速度快、面向?qū)ο,?shù)據(jù)庫可移植。
(此處應(yīng)該將優(yōu)缺點(diǎn)一起分析,才是滿意得到回答)
延伸學(xué)習(xí):
MyBatis和iBatis的區(qū)別:
ibatis本是apache的一個開源項(xiàng)目,2010年這個項(xiàng)目由apache software foundation 遷移到了google code,并且改名為mybatis
(1)Mybatis實(shí)現(xiàn)了接口綁定,使用更加方便:
在ibatis2.x中我們需要在DAO的實(shí)現(xiàn)類中指定具體對應(yīng)哪個xml映射文件,而Mybatis實(shí)現(xiàn)了DAO接口與xml映射文件的綁定,
(2)對象關(guān)系映射的改進(jìn),效率更高
iBatis:
優(yōu)點(diǎn) : 代碼量減少、簡單易上手、SQL語句和代碼分離(便于修改)、數(shù)據(jù)庫可移植
缺點(diǎn):SQL語句需要自己寫、參數(shù)只能有一個
Hibernate:
優(yōu)點(diǎn):對象關(guān)系數(shù)據(jù)庫映射、完全面向?qū)ο蟆⑻峁┚彺鏅C(jī)制、HQL編程
缺點(diǎn):不能靈活使用原生SQL、 無法對SQL優(yōu)化、全表映射效率低下、N+1的問題
JDBC、iBatis、Hibernate明顯對比:
JDBC更為靈活,更加有效率,系統(tǒng)運(yùn)行速度快。但是代碼繁瑣復(fù)雜,有的時候用了存儲過程就不方便數(shù)據(jù)庫移植了。
hibernate,iBatis 關(guān)系數(shù)據(jù)庫框架,開發(fā)速度快,更加面向?qū)ο,可以移植更換數(shù)據(jù)庫,但影響系統(tǒng)性能。
JDBC:手動
手動寫sql,不能直接傳入一個對象、不能直接返回一個對象。
iBatis的特點(diǎn):半自動化
手動寫sql,能直接傳入一個對象、能直接返回一個對象。
Hibernate:全自動
不寫sql,自動封裝,能直接傳入一個對象、能直接返回一個對象。
2、PrepareStatement相比statement,有哪些優(yōu)點(diǎn)?
答:
(1)直接使用Statement,驅(qū)動程序一般不會對sql語句作處理而直接交給數(shù)據(jù)庫;
使用PreparedStament,形成預(yù)編譯的過程,并且會對語句作字符集的轉(zhuǎn)換(至少在sql server)中如此。
如此,有兩個好處:對于多次重復(fù)執(zhí)行的語句,使用PreparedStament效率會更高一點(diǎn),并且在這種情況下也比較適合使用batch;另外,可以比較好地解決系統(tǒng)的本地化問題。
(2)PreparedStatement還能有效的防止危險(xiǎn)字符的注入,也就是sql注入的問題。(但是必須使用“對?賦值的方法”才管用)
3、TCP/IP對應(yīng)于OSI七層模型的哪些層?
答:
OSI七層模型分別是:應(yīng)用層、表示層、會話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。
TCP/IP協(xié)議不是TCP和IP協(xié)議的合稱,而是指因特網(wǎng)整個TCP/IP協(xié)議族。從協(xié)議分層模型方面來看,TCP/IP由四個層次組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。
延伸學(xué)習(xí):
應(yīng)用層:由用戶自己規(guī)定,只要形成的消息能與表示層接口。這包括各機(jī)互訪協(xié)議,分布式數(shù)據(jù)庫協(xié)議等。
表示層:是在滿足用戶需求的基礎(chǔ)上,盡可能的節(jié)省傳輸費(fèi)用而設(shè)置的。如文本壓縮、常用詞轉(zhuǎn)換、加密、變更文件格式等。這就是說,只要能表示用戶所需的信息,形式上可以改變,并盡可能形成標(biāo)準(zhǔn)格式,以利于傳送。
對話層:是為用戶之間對話的進(jìn)行而設(shè)置的 ,這包括建立和拆除對話,確定對話對象。如不是授權(quán)的對話者,就不予送出信息,以達(dá)到可靠的要求,這一層也可與傳輸層合并。
傳輸層:就是使主機(jī)之間或信源和信宿之間能互通信息。這一層因此也可以被稱為源--宿層或端--端層,這一般是主機(jī)操作系統(tǒng)的一部分。它負(fù)責(zé)把上一層(對話層)來的信息傳輸給網(wǎng)絡(luò)層,后者已能保證把各信息包送達(dá)目的地,本層把信息處理得適于網(wǎng)內(nèi)傳送,包括把信息分給各種網(wǎng)絡(luò)去傳遞,也可規(guī)定服務(wù)方式,如點(diǎn)對點(diǎn)通信或點(diǎn)對多的廣播式通信。
網(wǎng)絡(luò)層:是規(guī)定通信網(wǎng)內(nèi)的路由選擇等方式,以使建立用戶間的信息報(bào)傳輸設(shè)施。這包括地址的標(biāo)明,把消息分成信息包或把信息包組成消息,一些調(diào)整阻塞所需的規(guī)定,路由選擇等。這些功能可由計(jì)算機(jī)的輸入輸出設(shè)備來完成,也可專用一些具有處理功能的接口板來完成。
數(shù)據(jù)鏈路層:是規(guī)定建立鏈路的過程。這在信息包傳送過程中就需有一定的幀結(jié)構(gòu),其中包括收發(fā)數(shù)據(jù)的相互應(yīng)答。
物理層:是規(guī)定一些機(jī)電性能。例如代表“0”和“1”的電壓值、匹配阻抗、每個比特的時長以及插腳的多少和功能等。也包括工作方式如雙工、單工或半雙工,建立通信的啟動和終止等,這一層協(xié)議滿足后,從上一層看去,已提供了一個合適的數(shù)字新到,也就是數(shù)據(jù)已可通過它傳輸出去。
4、為什么3次握手,4次揮手?
3次握手建立連接:
第一次握手:建立連接時,客戶端發(fā)送SYN包(syn=j)到服務(wù)器,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn);SYN:同步序列編號(Synchronize Sequence Numbers)即握手信號。
第二次握手:服務(wù)器收到SYN包,必須確認(rèn)客戶的SYN(ack=j+1),同時自己也發(fā)送一個SYN包(syn=k),即SYN+ACK包,此時服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。
4次揮手?jǐn)嚅_連接:
對于一個已經(jīng)建立的連接,TCP使用改進(jìn)的4次揮手來釋放連接(使用一個帶有FIN附加標(biāo)記的報(bào)文段)。TCP關(guān)閉連接的步驟如下:
第一步,當(dāng)主機(jī)A的應(yīng)用程序通知TCP數(shù)據(jù)已經(jīng)發(fā)送完畢時,TCP向主機(jī)B發(fā)送一個帶有FIN附加標(biāo)記的報(bào)文段(FIN表示英文finish)。
第二步,主機(jī)B收到這個FIN報(bào)文段之后,并不立即用FIN報(bào)文段回復(fù)主機(jī)A,而是先向主機(jī)A發(fā)送一個確認(rèn)序號ACK,同時通知自己相應(yīng)的應(yīng)用程序:對方要求關(guān)閉連接(先發(fā)送ACK的目的是為了防止在這段時間內(nèi),對方重傳FIN報(bào)文段)。
第三步,主機(jī)B的應(yīng)用程序告訴TCP:我要徹底的關(guān)閉連接,TCP向主機(jī)A送一個FIN報(bào)文段。
第四步,主機(jī)A收到這個FIN報(bào)文段后,向主機(jī)B發(fā)送一個ACK表示連接徹底釋放。
5、進(jìn)程和線程區(qū)別是什么?
答:
進(jìn)程是一個具有獨(dú)立功能的程序關(guān)于某個數(shù)據(jù)集合的一次運(yùn)行活動。它可以申請和擁有系統(tǒng)資源,是一個動態(tài)的概念,是一個活動的實(shí)體。
進(jìn)程是一個“執(zhí)行中的程序”。程序是一個沒有生命的實(shí)體,只有處理器賦予程序生命時,它才能成為一個活動的實(shí)體,我們稱其為進(jìn)程。
一個進(jìn)程中可以包含若干個線程,它們可以利用進(jìn)程所擁有的資源。在引入線程的操作系統(tǒng)中,通常都是把進(jìn)程作為分配資源的基本單位,而把線程作為獨(dú)立運(yùn)行和獨(dú)立調(diào)度的基本單位。
線程與進(jìn)程的區(qū)別歸納:
地址空間和其它資源:進(jìn)程間相互獨(dú)立,同一進(jìn)程的各線程間共享。某進(jìn)程內(nèi)的線程在其它進(jìn)程不可見。
通信:進(jìn)程間通信IPC,線程間可以直接讀寫進(jìn)程數(shù)據(jù)段(如全局變量)來進(jìn)行通信——需要進(jìn)程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性。
調(diào)度和切換:線程上下文切換比進(jìn)程上下文切換要快得多。
【阿里巴巴招聘筆試題】相關(guān)文章:
醫(yī)院招聘護(hù)士常見考試題目05-11
幼兒教師招聘考試題庫09-13
英語試題08-17
成人高考高升!墩Z文》模擬試題試題11-12
招聘培訓(xùn)心得02-02
招聘簡歷模板10-30
招聘實(shí)習(xí)總結(jié)08-22
招聘個人總結(jié)04-15
樂事面試題11-05
硅谷面試題精選02-03