Java面試,談Set, List, Map, Spring框架, J2EE

和技術經理的面試。本以爲這樣的題目只有書上有,現實中面試應該不會問的吧,誰知道有的公司就是這麼的高端!

經理:Set和List的區別?
我:Set中元素無序,只能說某個元素是否在Set裏面,不能說是第幾個元素。
經理:這個對,不過這個不是最重要的,你回去再查一查吧。
(什麼叫最重要,難道我說的這個還不夠重要?典型的以標準答案爲準,別的答案都一竿子打死思維。)

經理:HashMap和HashTable區別?
(多少年的老東西了,怎麼還在問哪。)
我:以前的說法是HashTable線程安全,HashMap線程不安全。但更重要的區別是,HashTable在Java的較新版本如1.6, 1.7版本中已經不建議使用了。一般都是用HashMap。
經理:你這個是純粹照着書上的答案背下來的,沒有自己的觀點。
(你還好意思說,你這些題目難道不是書上抄的,既然題目是書上的,答案爲什麼不能是書上的。)
經理:你光會背書,等到你需要多個線程之間共享的時候,你用HashMap就會出問題。
(大哥,你這是什麼邏輯啊,我光會背書也知道多線程不用HashMap啊。)

經理:用過哪些集合?
我:ArrayList, HashMap。一般只用這兩個。
(我沒事做幹嘛要用那麼多亂七八糟的集合啊)
經理:用過哪些設計模式?
我:……靜態工廠模式?
(我怎麼知道用過哪些設計模式啊,框架又不是我開發出來的!)
經理:知道哪些SQL優化的方法?
我:不要嵌套很多個子查詢。
經理:我是說,有什麼具體的調優做法嗎?
我:用debug單步調試,看是不是讀寫數據庫的這個語句慢。不過這個在開發環境也測不出來吧,數據量小,生產環境慢開發環境不一定慢。
經理:(繼續問了N個SQL優化的問題)比如說給你一個SQL語句,告訴你這個語句就是慢,你會怎麼去調優?
我:……我們一般寫SQL,能保證結果正確,符合業務規則,就已經很不錯了吧,很少說還去考慮調優的。
(不知這位大哥手下究竟是什麼大項目,或者是硬件配置低到了什麼程度,纔會出現SQL總是慢?)
經理:Spring的IOC和AOP能講一下嘛?
我:IOC是……那個叫做……注入……對,依賴注入,就是生成一個Bean不是通過new來生成,而是讓Spring根據xml中配置好的內容來自動生成。AOP是在執行方法之前和之後能夠自動進行一些操作,例如事務提交,記錄日誌。
(我又不是研究框架的,問我我怎麼知道!)
經理:談一下Spring的事務管理?
我:是通過AOP,是在xml裏面配置,告訴他在一個方法執行完之後提交事務,如果方法執行到一半出現異常,會自動回滾事務。
經理:聽你這個回答,感覺是自己沒有親自做過,只知道大概的意思,沒有真正理解。
我:對啊,是這樣。
(有誰會一天沒事去搭建框架,配置框架啊,人家配好的我們使用不就好了。)


總之我的總結是,J2EE的前輩們辛辛苦苦搞出來Spring框架,完善了這麼多版本,力求做到容易上手、容易使用,希望能讓我們普通程序員可以把精力集中在業務邏輯上,而不是一天到晚在那糾纏框架如何配置,框架的原理是啥。而面試官對此毫不領情,人家已經封裝好的東西,他偏要給你拆出來,問你裏面的原理。 違反基本的面向對象思想,違反基本的軟件工程思想,這就是目前很多面試官的通病。


陸續想到,補充:

經理:重載和重寫的區別?
我:……(想了幾秒) 重載是方法名相同,參數類型或者參數個數不同。重寫是在繼承的時候纔有的,子類的方法名、參數類型、參數個數都相同,這叫重寫。
(使用的時候誰管他重載重寫啊, 都是用的英文版的Eclipse,上面無論如何是不會出現“重載”“重寫”這幾個字的。大哥你的問題太高端了。)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章