java web面試技巧,數據庫面試,java web輕量級開發面試教程


 

 

 

我最近看到一本比較好的講java web方面面試的書,java web輕量級開發面試教程

其中不僅用案例和視頻講述了Spring MVC,Hibernate, ORM等方面的技巧,而且還實際講到了面試技巧。

 

如下部分是對數據庫面試方面的總結。

如果在面試或與資深人事交流的過程中,你能有效合理地展示出本章所給出的一些知識點,那么對你的評價就會是“對數據庫有深入了解”,甚至能加上“有設計數據表的經驗”,即便你說有過3年商業項目數據庫操作的經驗,那么別人也能相信。

相反,如果一個工作經驗滿3年的程序員或許動手編程能力不差,但無法在交流溝通過程中證明這點,或者干脆不知道怎么證明,那么對他的評價往往可能是“數據庫層面,有過商業項目的經驗,但只會些基本的增刪改查(頂多再加上會視圖存儲過程等技術),無法獨立擔當數據庫方面的工作”。

下面列些數據庫方面的常見面試問題,大家可以以此來衡量一下對本章知識點的掌握程度。

問題1,你有沒有建表的經驗?建表時你是否會遵循三范式?

設計數據表時,需要權衡數據冗余和連接代價,詳細內容請參考2.1.3節你的描述。

問題2,你有過哪些數據庫的優化經驗?

大家可以說用過索引,具體的知識點可以參考2.3節。

問題3,請你敘述一下不應該建索引的場景。

問題4,like語句會不會走索引?

問題5,索引的結構是什么?建索引會有什么代價?我們應該如何權衡要不要建索引?

關於上述三個問題,代價可以參考2.3節的描述。

問題6,事務隔離級別有哪些級別?具體的臟讀,幻讀和不可重復讀的含義是什么?

參考2.4.4節的描述。

問題7,Statement和PreparedStatement對象有什么差別?

大家可以圍繞預處理和批處理這兩個角度來回答。

以下我們再列些數據庫方面比較高級的知識點,這些知識點需要靠項目經驗來沉淀,一般高級程序員能知道,而初學者或初級程序員未必知道,大家可以在面試時,找合適的機會說出來,這樣面試官一定會對你刮目相看。

知識點1,在數據庫編程時,盡量用try…catch…finally的代碼結構,同時在finally里放置釋放數據庫連接等資源的代碼,因為如果我們不主動地關閉數據庫連接,這部分所占用的內存是無法被垃圾回收器(GC)主動回收的。

知識點2,為了提升數據庫操作的性能,我會用到PreparedStatement來進行批處理操作,但每批執行的SQL語句的數量不能太多,否則會把緩沖區撐爆,一般每批是500條左右。

知識點3,通過PreparedStatement的預處理機制,我們可以有效地防止SQL注入。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM