JAVA中級工程師面試題_第1頁
JAVA中級工程師面試題_第2頁
JAVA中級工程師面試題_第3頁
全文預覽已結(jié)束

下載本文檔

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

文檔簡介

1、(一) 一條sql執(zhí)行過長的時間,你如何優(yōu)化,從哪些方面?答:1、查看sql是否涉及多表的聯(lián)表或者子查詢,如果有,看是否能進行業(yè)務(wù)拆分,相關(guān)字段冗余 或者合并成臨時表(業(yè)務(wù)和算法的優(yōu)化)2、涉及鏈表的查詢,是否能進行分表查詢,單表查詢之后的結(jié)果進行字段整合3、如果以上兩種都不能操作,非要鏈表查詢,那么考慮對相對應(yīng)的查詢條件做索引。加快查詢速度4、針對數(shù)量大的表進行歷史表分離(如交易流水表)5、數(shù)據(jù)庫主從分離,讀寫分離,降低讀寫針對同一表同時的壓力,至于主從同步,MySQL有自帶的 binlog實現(xiàn)主從同步(二)HTTP協(xié)議,GET和POST的區(qū)別答:1、GET提交,請求的數(shù)據(jù)會附在URL之后就

2、是把數(shù)據(jù)放置在HTTP協(xié)議頭中),以?分割URL 和傳輸數(shù)據(jù),多個參數(shù)用&連接。如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送,如果是空格,轉(zhuǎn)換為+,如 果是中文/其他字符,則直接把字符串用BASE64加密,得出如:E4%BD%A0%E5%A5%BD,其中%XX中的XX為該符號以16進制表示的ASCII。POST提交:把提交的數(shù)據(jù)放置在是HTTP包的 包體中。上文示例中紅色字體標明的就是實際的傳輸數(shù)據(jù)。因此,GET提交的數(shù)據(jù)會在地址欄中顯 示出來,而POST提交,地址欄不會改變。2、傳輸數(shù)據(jù)的大小:首先聲明:HTTP協(xié)議沒有對傳輸?shù)臄?shù)據(jù)大小進行限制,HTTP協(xié)議規(guī)范也沒 有對URL長度進行限制。(三)說說

3、你知道的幾個Java集合類答:list、set、queue、map 等(四)鎖機制有什么用?簡述悲觀鎖和樂觀鎖機制。答:有些業(yè)務(wù)邏輯在執(zhí)行過程中要求對數(shù)據(jù)進行排他性的訪問,于是需要通過一些機制保證在此過程 中數(shù)據(jù)被鎖住不會被外界修改,這就是所謂的鎖機制。悲觀鎖,顧名思義悲觀的認為在數(shù)據(jù)處理過程中極有可能存在修改數(shù)據(jù)的并發(fā)事務(wù)(包括本系統(tǒng)的其 他事務(wù)或來自外部系統(tǒng)的事務(wù)),于是將處理的數(shù)據(jù)設(shè)置為鎖定狀態(tài)。悲觀鎖必須依賴數(shù)據(jù)庫本身的 鎖機制才能真正保證數(shù)據(jù)訪問的排他性。樂觀鎖,顧名思義,對并發(fā)事務(wù)持樂觀態(tài)度(認為對數(shù)據(jù)的 并發(fā)操作不會經(jīng)常性的發(fā)生),通過更加寬松的鎖機制來解決由于悲觀鎖排他性的數(shù)據(jù)

4、訪問對系統(tǒng)性 能造成的嚴重影響。最常見的樂觀鎖是通過數(shù)據(jù)版本標識來實現(xiàn)的,讀取數(shù)據(jù)時獲得數(shù)據(jù)的版本號, 更新數(shù)據(jù)時將此版本號加1,然后和數(shù)據(jù)庫表對應(yīng)記錄的當前版本號進行比較,如果提交的數(shù)據(jù)版本 號大于數(shù)據(jù)庫中此記錄的當前版本號則更新數(shù)據(jù),否則認為是過期數(shù)據(jù)無法更新。提示:使用樂觀鎖會增加了一個版本字段,很明顯這需要額外的空間來存儲這個版本字段,浪費了空 間,但是樂觀鎖會讓系統(tǒng)具有更好的并發(fā)性,這是對時間的節(jié)省。因此樂觀鎖也是典型的空間換時間 的策略。(五)數(shù)據(jù)庫的事務(wù)處理是什么?有哪些特性?答:事務(wù):是一系列的數(shù)據(jù)庫操作,是數(shù)據(jù)庫應(yīng)用的基本邏輯單位。事務(wù)性質(zhì):原子性、隔離性、一致性、持久性。l

5、原子性。即不可分割性,事務(wù)要么全部被執(zhí)行,要么就全部不被執(zhí)行。l 一致性或可串性。事務(wù)的執(zhí)行使得數(shù)據(jù)庫從一種正確狀態(tài)轉(zhuǎn)換成另一種正確狀態(tài)l隔離性。在事務(wù)正確提交之前,不允許把該事務(wù)對數(shù)據(jù)的任何改變提供給任何其他事務(wù),l持久性。事務(wù)正確提交后,其結(jié)果將永久保存在數(shù)據(jù)庫中,即使在事務(wù)提交后有了其他故障,事務(wù) 的處理結(jié)果也會得到保存。(六)說一下你對存儲過程的理解?答:存儲過程:存儲過程就是編譯好了的一些sql語句。1存儲過程因為SQL語句已經(jīng)預編繹過了,因此運行的速度比較快。可保證數(shù)據(jù)的安全性和完整性。通過存儲過程可以使沒有權(quán)限的用戶在控制之下間接地存取數(shù)據(jù) 庫,從而保證數(shù)據(jù)的安全。通過存儲過程可

6、以使相關(guān)的動作在一起發(fā)生,從而可以維護數(shù)據(jù)庫的完整 性??梢越档途W(wǎng)絡(luò)的通信量。存儲過程主要是在服務(wù)器上運行,減少對客戶機的壓力。:存儲過程可以接受參數(shù)、輸出參數(shù)、返回單個或多個結(jié)果集以及返回值。可以向程序返回錯誤原 因:存儲過程可以包含程序流、邏輯以及對數(shù)據(jù)庫的查詢。同時可以實體封裝和隱藏了數(shù)據(jù)邏輯。(七)內(nèi)聯(lián)接,外聯(lián)接區(qū)別?答:內(nèi)連接是保證兩個表中所有的行都要滿足連接條件,而外連接則不然。在外連接中,某些不滿足條件的列也會顯示出來,也就是說,只限制其中一個表的行,而不限制另一 個表的行。分左連接、右連接、全連接三種。(八)什么是OOP?什么是類?請對比類和對象實例之間的關(guān)系。答:OOP是Ob

7、ject_oriented Programming面向?qū)ο缶幊蹋┑目s寫。這主要是為了區(qū)別于以前的面向 過程的程序設(shè)計!指的是用對象的觀點來組織與構(gòu)建系統(tǒng),它綜合了功能抽象和數(shù)據(jù)抽象,這樣可以 減少數(shù)據(jù)之間的耦合性和代碼的出錯幾率。使用面向?qū)ο缶幊碳夹g(shù)可以使得軟件開發(fā)者按照現(xiàn)實世界 里人們思考問題的模式編寫代碼,可以讓軟件開發(fā)者更好地利用代碼直接表達現(xiàn)實中存在的對象,將問 題空間直接映射到解空間!類:即class在面向?qū)ο蟮某绦蛟O(shè)計中,專門用類”來表示用戶定義的抽象數(shù)據(jù)類型(user_defined abstract typ)。它將具有相同狀態(tài)、操作和訪問機制的多個對象進行了抽象。類具有繼承、數(shù)

8、據(jù)隱 藏和多態(tài)三種主要特性。利用類的這三種特性可以更好地表示現(xiàn)實世界中事物。類是同一類對象實例 的共性的抽象,對象是類的實例化。對象通常作為計算機模擬思維,表示真實世界的抽象,一個對象 就像一個軟件模塊,可以為用戶提供一系列的服務(wù)一可以改變對象的狀態(tài)、測試、傳遞消息等。類定 義了對象的實現(xiàn)細節(jié)或數(shù)據(jù)結(jié)構(gòu)。類是靜態(tài)的,對象是動態(tài)的,對象可以看作是運行中的類。類負責 產(chǎn)生對象,可以將類當成生產(chǎn)對象的工廠(Object fac tor).談一下你對數(shù)據(jù)庫視圖的理解?答:視圖是一種虛擬表,通常是作為來自一個或多個表的行或列的子集創(chuàng)建的。視圖本質(zhì)上講,就 是保存在數(shù)據(jù)庫中的select查詢。視圖并不是數(shù)據(jù)庫中存儲的數(shù)據(jù)值的集合。對最終用戶的好處- 結(jié)果更容易理解-獲得數(shù)據(jù)更容易。對開發(fā)人員的好處-限制數(shù)據(jù)檢索更容易-維護應(yīng)用程序更方 便(十)談一下你對MVC的理解?答:MVC設(shè)計模式(應(yīng)用觀察者模式的框架模式)M: Model(Business process layer)模型,操作數(shù)據(jù)的業(yè)務(wù)處理層,并獨立于表現(xiàn)層 (Independent of presen

溫馨提示

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

評論

0/150

提交評論