一個網友的迷惑:
我工作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都是在方法的前後切入,我還真沒看過在中間切入的呢。呵呵!
開汽車,難道我要知道發動機是幾衝程的,什麼人設計的,設計的原理是什麼,為什麼這麼設計,什麼材料設計的,知道這些我才能把汽車開好嗎
答:如果我們做的就是設計汽車,那麼肯定要熟悉了,如果我們做的是維修汽車,那麼也需要。但是,我們不是開車的。那些使用我們軟體的最終客戶,才是開車的,而我們程式員,是車輛的組裝工程師,我們的任務就是選擇合適的車輛組件,然後進行正確的組裝,並按時交個終端使用者。