一個網友的迷惑:
??? 我工作5年了,一直做J2EE的項目,前幾天去面試,一個人問我JDBC有幾種連接方式,這個問題這么多年以來我從來沒有遇見過,不知道大家 怎么看的。
??? 還有一個問題,說是折半查找的地時間復雜度,這個問題在大學剛畢業的時候我肯定會,但是這么多年過去了,我從來沒有考慮過這樣的問題。我不知道有沒有人在J2ee的項目中遇見過這樣的事情。
??? 還有,面試的時候,公司會為一些原理性的東西,SPring中的事務是怎么實現的,AOP是怎么實現的,不是說得怎么用而是說的是spring代碼中如何實現的。
? 說實話這個問題很有深度,也很好,但是我工作這么多年使用了那么長時間的spring和Hibernate,從來沒有關心它內部是怎么實現的。我就有疑問了,我要使用一個工具,比如說,開汽車,難道我要知道發動機是幾沖程的,什么人設計的,設計的原理是什么,為什么這么設計,什么材料設計的,知道這些我才能把汽車開好嗎
?
我的答復:
??? 我是時間更長的菜鳥,我來應聘看看:
??? 一個人問我JDBC有幾種連接方式
??? 答:我想,他問的是JDBC的幾個模式吧,比如Type1, 到 Type 4, 具體的我還真分不清了,可以肯定的是:Type 4是純Java開發的, 其中一個是jdbc-odbc橋的, 另一個是用于web頁面鏈接(applet)遠程連接的,最后一個是本地組件cli的。我們一般都選用Type4的驅動,因為無需安裝數據庫的專用客戶端。
?
??? 折半查找的地時間復雜度
??? 答:我是野戰軍,我不明白什么叫折半查找,也不知道什么叫復雜度。所以是0分。因為我不需要知道這些,如同樓主自己說的,項目里從來沒用到過這些東西,真遇到了,翻翻書,查查資料就行了。
?
?? SPring中的事務是怎么實現的,AOP是怎么實現的
??? 答:這個我真沒仔細讀過源碼,但對于事務,肯定是維持一個與當前線程或者session有關的數據庫連接,在事務開始時,啟動連接,并設置 setAutoCommit(false), 在事務結束時,提交或者回滾事務。至于AOP, 我理解是通過代碼重構和再次包裝,讓一些代碼先運行,再運行原始代碼,最后運行一些代碼。所以我見到的AOP都是在方法的前后切入,我還真沒看過在中間切入的呢。呵呵!
?
?? 開汽車,難道我要知道發動機是幾沖程的,什么人設計的,設計的原理是什么,為什么這么設計,什么材料設計的,知道這些我才能把汽車開好嗎
?
? 答:如果我們做的就是設計汽車,那么肯定要熟悉了,如果我們做的是維修汽車,那么也需要。但是,我們不是開車的。那些使用我們軟件的最終客戶,才是開車的,而我們程序員,是車輛的組裝工程師,我們的任務就是選擇合適的車輛組件,然后進行正確的組裝,并按時交個最終用戶。