第一篇:java程序員面試交流項(xiàng)目經(jīng)驗(yàn)
1:請(qǐng)你介紹一下你自己
這是面試官常問的問題。一般人回答這個(gè)問題過于平常,只說姓名、愛好、工作經(jīng)驗(yàn),這些簡歷上都有。其實(shí),面試官最希望知道的是求職者能否勝任工作,包括:最強(qiáng)的技能、最深入研究的知識(shí)領(lǐng)域、個(gè)性中最積極的部分等。2:說說你的家庭
面試時(shí)詢問家庭問題不是非要知道求職者家庭情況,探究隱私,而是要了解家庭背景對(duì)求職者的塑造和影響。面試官希望聽到的重點(diǎn)也在于家庭對(duì)求職者的積極影響。3:說說你的最大優(yōu)缺點(diǎn)
這個(gè)問題的概率很大,面試官喜歡求職者從自己的優(yōu)點(diǎn)說起,中間加一些小缺點(diǎn),最后再把問題轉(zhuǎn)回到優(yōu)點(diǎn)上,突出優(yōu)點(diǎn)的部分。4:就你申請(qǐng)的這個(gè)職位,你認(rèn)為你還缺什么?
面試官喜歡問求職者的弱點(diǎn),但精明的求職者一般不直接回答。他們希望看到這樣的求職者:繼續(xù)重復(fù)自己的優(yōu)勢,然后說:“對(duì)于這個(gè)職位和我的能力來說,我相信自己可以勝任的,只是缺乏經(jīng)驗(yàn),這個(gè)問題我想我可以進(jìn)入公司以后以最短的時(shí)間來解決?!?5:你期望的工資是多少?
這個(gè)問題不能直接回答,面試官希望聽到:“以我的能力和優(yōu)勢,我完全可以勝任這個(gè)職位,我相信我可以做的很好。但是貴公司對(duì)這個(gè)職位的描述不是很具體,我想我可以延后再討論”。
6:你還有什么問題嗎?
這個(gè)問題看上去可有可無,其實(shí)很關(guān)鍵,面試官不喜歡說“沒有問題”的人,因?yàn)槠浜茏⒅貑T工的個(gè)性和創(chuàng)新能力。如果有人這樣問:貴公司對(duì)新入公司的員工有沒有什么培訓(xùn)的項(xiàng)目?或者說貴公司的晉升機(jī)制是什么樣的?面試官將很歡迎,因?yàn)轶w現(xiàn)出你對(duì)學(xué)習(xí)的熱情和以及你的上進(jìn)心。
注意:面試過程中,求職者要尊重面試官,認(rèn)真回答每一個(gè)問題,在回答問題之后說一句“謝謝”,能提高獲勝的機(jī)會(huì).面試進(jìn)行曲之技術(shù)面試(項(xiàng)目經(jīng)驗(yàn))收藏
在前期已經(jīng)講過怎樣分析自己,對(duì)自己進(jìn)行一個(gè)準(zhǔn)確的定位,選擇一個(gè)合適的求職方向!并結(jié)合自己的實(shí)際個(gè)人情況來寫一份針對(duì)性很強(qiáng)的個(gè)人簡歷!個(gè)人簡歷就是個(gè)人的廣告!好的簡歷可以更受到用人需求單位青睞!好的簡歷才能讓你獲得面試的機(jī)會(huì)!我們還針對(duì)面試列出了j2ee方面的知識(shí)點(diǎn)!不管是筆試還是面試都是會(huì)考到這些非常重要的知識(shí)點(diǎn)!面試的技術(shù)內(nèi)容并不會(huì)有想象中的那么難,主要注重基礎(chǔ)和細(xì)節(jié)!細(xì)節(jié)決定一切!所以列羅的那些知識(shí)點(diǎn)是需要下功夫去準(zhǔn)備的!當(dāng)然列羅的那些知識(shí)點(diǎn)只是一些在面試中經(jīng)常會(huì)出現(xiàn)的問題集!每家企業(yè)都可能超出這些知識(shí)點(diǎn)的可能(就不要罵我了)!自己去準(zhǔn)備吧!技術(shù)方面的考核通常分為筆試,技術(shù)面試;其中技術(shù)面試又分為專業(yè)知識(shí)面試和項(xiàng)目經(jīng)驗(yàn)考核。應(yīng)該說來筆試和專業(yè)知識(shí)面試都是考核你對(duì)某方面(j2ee或.net)知識(shí)的掌握和熟練程度!而項(xiàng)目經(jīng)驗(yàn)考核則是看你是不是擁有項(xiàng)目經(jīng)驗(yàn),是不是適合企業(yè)的用人需要,是不是需要企業(yè)為你付出培養(yǎng)的成本,是不是你能夠馬上投入到工作中去.企業(yè)是以你的項(xiàng)目經(jīng)驗(yàn)作為衡量你的工資標(biāo)準(zhǔn)的!所以就是會(huì)出現(xiàn)有些同學(xué)可能在學(xué)校學(xué)習(xí)成績很好而企業(yè)給他開的工資并不高,而有些同學(xué)的學(xué)習(xí)成績一般反而得到高工資的原因!專業(yè)知識(shí)的考核只是企業(yè)了解你具有這方面的專業(yè)素養(yǎng)和能力!其實(shí)有時(shí)筆試成績差一點(diǎn)或者你感覺在做筆試題的時(shí)候有些題目沒有做出來或答錯(cuò)了并沒有關(guān)系的。在技術(shù)面試的時(shí)候,在回答專業(yè)知識(shí)方面的題目不夠理想,也并不起決定性的作用!總之筆試和專業(yè)知識(shí)面試的答題達(dá)到企業(yè)要求的70%就可以了!當(dāng)然如果你在專業(yè)知識(shí)方面表現(xiàn)的太差,考官對(duì)你也就沒有多大的興趣了!但是最能決定企業(yè)下定決心錄用你的關(guān)鍵在于你的項(xiàng)目經(jīng)驗(yàn)(排除企業(yè)特別強(qiáng)調(diào)英文等其它方面能力外)。說了這么多好像都沒有說到正題,這是因?yàn)樽尨蠹腋宄牧私饣卮鸷庙?xiàng)目經(jīng)驗(yàn)方面的問題是多么的重要。而這方面又正好是剛從學(xué)校出來的學(xué)員十分薄弱的,并且針對(duì)這方面介紹也十分少!下面我們就來談?wù)劽嬖囍嘘P(guān)于項(xiàng)目經(jīng)驗(yàn)的問題及應(yīng)該從哪些方面進(jìn)行回答!
問題
一、請(qǐng)簡單的介紹一下你自己吧!
分析:這是在任何面試中都會(huì)遇到一個(gè)題目,看起來這個(gè)問題是十分簡單的,但是往往我們并不知道考官問這個(gè)題目是希望從你的回答中獲得什么信息!所以我們就很容易走題,跑題,不入正題!不能馬上就吸引考官。請(qǐng)記住抓住面試的每一個(gè)機(jī)會(huì)來推銷自己。但是往往我們不知道從哪里談起。所以我們得先了解考官想要獲取什么信息呢? 1. 你的從業(yè)時(shí)間 你從事相關(guān)的工作有多長了 2. 你的教育背景 你是否受過良好的教育 3. 你的工作經(jīng)驗(yàn) 你是否有過具有一定的工作經(jīng)驗(yàn) 4. 你的項(xiàng)目經(jīng)驗(yàn) 你是否有過豐富的項(xiàng)目經(jīng)驗(yàn)
5. 你與眾不同之處 你是怎么進(jìn)行項(xiàng)目開發(fā)的,有什么特別之處,或者你在哪些項(xiàng)目中 取得過哪些成功,或者有哪些自己覺得驕傲的地方 6. 你最擅長的地方 你最擅長的技術(shù)是什么? 7. 你的性格 你是怎么樣的一個(gè)人
怎么回答: 我們一一來分析吧,首先從業(yè)時(shí)間一般回答你進(jìn)行軟件項(xiàng)目專業(yè)開發(fā)的時(shí)間.千萬不要把你以前在大街上賣過魚蛋或到夜市賣燒雞等亂七八糟的時(shí)間計(jì)算進(jìn)來.工作經(jīng)驗(yàn)也是,你至少有在一家公司呆過吧.不要告訴我你只學(xué)過j2ee或.net半年時(shí)間,就想來我公司混飯吃.要和你的簡歷對(duì)應(yīng)起來.一般至少1年半以上.教育背景:如果你上的大學(xué)及所上的專業(yè)比較對(duì)口,就說出來,非否就不要提了.總之是要揚(yáng)長避短
工作經(jīng)驗(yàn):也就是以前在什么公司上過班,與你簡歷上的一致就可以了.只說與軟件開發(fā)的工作經(jīng)驗(yàn),其它的就不要提了
項(xiàng)目經(jīng)驗(yàn):你曾經(jīng)做過的自認(rèn)為比較好的項(xiàng)目,這里特別重要,先用一句話來概括項(xiàng)目,然后把項(xiàng)目的功能及子功能全部敘述出來.你與眾不同之處:也以說你在項(xiàng)目你以什么獨(dú)特的方法獲得什么不同的效果,主要是能夠結(jié)果具體的項(xiàng)目或能舉例說出來.最擅長的地方:主要告訴對(duì)方你最擅長哪方面的技術(shù),是需求分析?編碼,或數(shù)據(jù)庫或架構(gòu) 你的性格:用一兩個(gè)詞來形容你自己,描述你的性格.回答實(shí)例: 面試官:請(qǐng)簡單的介紹一下你自己吧!令狐沖:您好,在下令狐沖.從事j2ee開發(fā)工作3年時(shí)間.20002年至2005年在大宋桃花島軟件谷皇室軟件公司從事j2ee項(xiàng)目開發(fā).其間開發(fā)過大宋俠士綜合管理平臺(tái).大宋俠士綜合管理平臺(tái)能夠自動(dòng)收集大宋各路俠士,英雄好漢,隱居高人信息并對(duì)他們的個(gè)人信息及所作所為進(jìn)行跟蹤管理,實(shí)現(xiàn)俠士信息維護(hù),查詢.俠義事件維護(hù),俠士等級(jí)管理,俠士獎(jiǎng)懲管理,俠義活動(dòng)發(fā)布,抗災(zāi)募捐管理等。鄙人在項(xiàng)目中主要負(fù)責(zé)需求分析,架構(gòu)設(shè)計(jì)和框架類代碼實(shí)現(xiàn)。在項(xiàng)目開發(fā)中善于與客戶溝通,充分理解客戶需求。具有極強(qiáng)自學(xué)能力,在大宋藏經(jīng)閣中通讀了大量的軟件項(xiàng)目開發(fā)秘籍,具有藏文,印度文,金文的讀寫能力。問題之
二、談?wù)勀愕腦XX項(xiàng)目吧!分析:考官通過看你的簡歷或者你的介紹來了解你所做的項(xiàng)目,那么考官肯定想更詳細(xì)的了解您的項(xiàng)目,看是不是與你的簡歷寫的項(xiàng)目經(jīng)驗(yàn)一致。也就是考核你是否具有真實(shí)的項(xiàng)目經(jīng)驗(yàn)。一般來說,在你的簡歷至少有一個(gè)重點(diǎn)項(xiàng)目,放在簡歷項(xiàng)目經(jīng)驗(yàn)欄的第一位。把項(xiàng)目的業(yè)務(wù)功能描述清楚。在這里你就是重點(diǎn)談一個(gè)項(xiàng)目就可以了。從下面幾個(gè)方面來進(jìn)行陳述 1. 用一句話簡述項(xiàng)目 2. 詳細(xì)的列出項(xiàng)目實(shí)現(xiàn)的功能
3. 說出項(xiàng)目實(shí)現(xiàn)的技術(shù)和架構(gòu),能說出項(xiàng)目的不尋常之處,比如采用了某項(xiàng)新技術(shù),采用了良好的架框等
4. 能讓別人感覺出項(xiàng)目的規(guī)模 5. 說出你在項(xiàng)目中的責(zé)任
通過這些來證明你是的確開發(fā)過了這個(gè)項(xiàng)目,并且這個(gè)項(xiàng)目是一個(gè)真實(shí)的。還有就是你是真正具有項(xiàng)目經(jīng)驗(yàn)的。合乎企業(yè)的用人需要。
特別注意要把項(xiàng)目所實(shí)現(xiàn)的功能描述得越詳細(xì)越好。當(dāng)然用詞要簡潔,表達(dá)要流利。其次要盡可能采用專業(yè)術(shù)語,顯得你的專業(yè)。不要犯低級(jí)錯(cuò)誤。
請(qǐng)記住,你要描述的是整個(gè)項(xiàng)目而不僅僅是你做的那一個(gè)模塊。有些項(xiàng)目你只參與了其中一個(gè)模塊,但是你要把整個(gè)項(xiàng)目描述出來,不要僅僅描述你參與的那一個(gè)模塊。說出你項(xiàng)目采用的技術(shù)及架構(gòu),還要能說明你在項(xiàng)目中的責(zé)任。回答實(shí)例:
面試官:令狐沖,能介紹一下你做的大宋俠士綜合管理平臺(tái)吧!令狐沖:好的,大宋俠士綜合管理平臺(tái)是為大宋武林聯(lián)盟開發(fā)的,實(shí)現(xiàn)武林聯(lián)盟管理的自動(dòng)化。大宋俠士綜合管理平臺(tái)能夠自動(dòng)收集大宋各路俠士,英雄好漢,隱居高人信息并對(duì)他們的個(gè)人信息及所作所為進(jìn)行跟蹤管理,實(shí)現(xiàn)俠士信息維護(hù),查詢.俠義事件維護(hù),俠士等級(jí)管理,俠士獎(jiǎng)懲管理,俠義活動(dòng)發(fā)布,抗災(zāi)募捐管理等。
系統(tǒng)基于B/S三層架構(gòu),采用Spring + Hibernate + Spring MVC框架.使用Oracle 數(shù)據(jù)庫.本項(xiàng)目只投入15個(gè)人,開發(fā)周期為6個(gè)月。本人在項(xiàng)目中進(jìn)行了前期的需求分析,系統(tǒng)架構(gòu)實(shí)現(xiàn),數(shù)據(jù)庫建模,及部分編碼工作。
問題之
三、談?wù)勀銈兪窃趺磳?duì)這個(gè)項(xiàng)目進(jìn)行開發(fā)的?(談?wù)勀銈兪窃趺催M(jìn)行項(xiàng)目開發(fā)的?)分析:這個(gè)問題是考核你是否熟悉軟件開發(fā)的流程,同時(shí)也是考核你的項(xiàng)目經(jīng)驗(yàn),你的專業(yè)素養(yǎng),從這里可以判斷出你參與過多少項(xiàng)目,可以判斷你對(duì)軟件工程的理解和熟悉程度。這個(gè)問題是十分關(guān)鍵的,你需要準(zhǔn)備的知識(shí)點(diǎn)有:軟件項(xiàng)目的生命周期、軟件項(xiàng)目的開發(fā)模型、面向?qū)ο蟮姆治龊驮O(shè)計(jì)、軟件質(zhì)量保證等。軟件項(xiàng)目的生命周期: 項(xiàng)目計(jì)劃 需求分析
設(shè)計(jì)(概要設(shè)計(jì)和詳細(xì)設(shè)計(jì))編碼 測試 發(fā)布 維護(hù)
項(xiàng)目計(jì)劃階段:走訪客戶,進(jìn)行交流溝通,獲得客戶原始需求。對(duì)客戶的需求和市場等進(jìn)行調(diào)研,分析,編寫可行性分析報(bào)告。
通過不斷的與客戶溝通,找客戶不同環(huán)節(jié)的用戶進(jìn)行交流來獲取需求。召開評(píng)審會(huì)議,報(bào)告可行性分析,報(bào)告用戶原始需求,報(bào)告項(xiàng)目遠(yuǎn)景規(guī)化。需求分析階段:
在客戶原始需求的基礎(chǔ)上不斷與客戶溝通,充分的熟悉和深入客戶業(yè)務(wù),獲得充分的業(yè)務(wù)需求,完善用戶需求和功能性需求,了解客戶的相關(guān)約束而獲得非功能性需求。最終編寫《需求規(guī)格說明書》;召開需求評(píng)審會(huì)議,客戶確定需求,并簽定合同;編寫項(xiàng)目計(jì)劃說明書;編寫測試計(jì)劃;召開項(xiàng)目啟動(dòng)會(huì)議,項(xiàng)目正式啟動(dòng)。
概要設(shè)計(jì)階段:根據(jù)《需求分析說明書》,進(jìn)行用例分析,獲得充分而有效的用例。編寫界面原型,編寫編碼規(guī)范和界面風(fēng)格規(guī)范,數(shù)據(jù)庫設(shè)計(jì)規(guī)范。用uml工具畫用例圖,編寫有效的用例規(guī)約文檔。劃分項(xiàng)目功能模塊.評(píng)審用例及用例規(guī)約文檔。
詳細(xì)設(shè)計(jì)階段:根據(jù)完整的用例及需求進(jìn)行分析,獲得數(shù)據(jù)庫所需的相關(guān)信息,畫數(shù)據(jù)庫E-R圖,編寫數(shù)據(jù)設(shè)計(jì)說明書.進(jìn)行數(shù)據(jù)庫建模。進(jìn)行詳細(xì)的分析,用uml工具畫類圖,確定每個(gè)功能模塊的子功能,抽取項(xiàng)目的公共部分成為一個(gè)公共模塊。確定項(xiàng)目的架構(gòu)基礎(chǔ)。確定需要用到的類及類成員和方法。確定一些輔助類及方法。對(duì)每一個(gè)用例都用uml工具畫出順序圖。編寫詳細(xì)設(shè)計(jì)說明書,評(píng)審詳細(xì)設(shè)計(jì)說明書, 進(jìn)行基礎(chǔ)框架搭建。列出任務(wù)清單,進(jìn)行任務(wù)分配。編碼階段:以小組的形式進(jìn)行代碼編寫,編寫單元測試用例,每完成一個(gè)類都要進(jìn)行單元測試。每完成一個(gè)功能點(diǎn)和模塊都要進(jìn)行集成測試。確保每一個(gè)功能點(diǎn)和模塊完成后都是一個(gè)可以看得見、摸得著的產(chǎn)品。而不是等到最后才進(jìn)行統(tǒng)一的調(diào)試和搭配。每天都要對(duì)代碼進(jìn)行檢查和優(yōu)化,也就是所謂的重構(gòu)。
測試階段:根據(jù)測試計(jì)劃對(duì)項(xiàng)目進(jìn)行系統(tǒng)測試,以及用戶的驗(yàn)收測試
產(chǎn)品發(fā)布:交付完整的產(chǎn)品和設(shè)計(jì)文檔。把產(chǎn)品布署到客戶的計(jì)算機(jī)上,確保產(chǎn)品的正常運(yùn)行??蛻艉炇?。
維護(hù)階段:為客戶提供技術(shù)保障,對(duì)產(chǎn)品進(jìn)行相應(yīng)的維護(hù)和升級(jí)工作 軟件常見開發(fā)模型
瀑布模型:最經(jīng)典的過程模型,適用于需求明確,規(guī)模較小的項(xiàng)目 噴泉模型:迭代,無間隙特點(diǎn),適用于面向?qū)ο蟮能浖_發(fā)過程 螺旋模型:
MSF模型:微軟解決方案過程模型
什么是極限(XP)編程:極限編程是對(duì)敏捷軟件開發(fā)方法的一種實(shí)現(xiàn)。它強(qiáng)調(diào)測試先行,也就是在編寫代碼的時(shí)候先編寫測試用例;循環(huán)迭代,每一次迭代都是一個(gè)可用的產(chǎn)品;重構(gòu),不斷的對(duì)代碼進(jìn)行優(yōu)化;結(jié)對(duì)編程,兩個(gè)人為一對(duì)共同進(jìn)行代碼編寫;它強(qiáng)調(diào)團(tuán)隊(duì)之間的知識(shí)傳播,讓團(tuán)隊(duì)的每個(gè)人都能熟悉軟件開發(fā)的各種技術(shù)。如:支持熟悉數(shù)據(jù)庫的人去做界面,做界面的人去做數(shù)據(jù)庫等,通過不定期的角色轉(zhuǎn)換來增強(qiáng)團(tuán)隊(duì)的能力。要求客戶參與到軟件開發(fā)中來,開發(fā)出最適合客戶需求的產(chǎn)品。
單元測試一般是在編碼的時(shí)候同步進(jìn)行的,一般是以類為單位進(jìn)行測試,當(dāng)一個(gè)類完成了編碼,并編譯正確后才進(jìn)行的測試,測試這個(gè)類是否已經(jīng)能夠?qū)崿F(xiàn)指定的功能。一個(gè)類能夠正常的編譯成功并不意味著這個(gè)類就已經(jīng)完成了,還要通過測試,設(shè)置斷言來確定他是否已經(jīng)達(dá)到了預(yù)期的效果,實(shí)現(xiàn)了特定的功能。調(diào)試,編譯通過只能證明代碼的語法沒有錯(cuò)誤。單元測試由程序員自己來進(jìn)行,也可以在項(xiàng)目小組內(nèi)交互進(jìn)行。單元測試是采用白盒測試 集成測試一般指實(shí)現(xiàn)了一個(gè)功能點(diǎn)或一個(gè)模塊后,為了測試這個(gè)模塊是否已經(jīng)實(shí)現(xiàn)了需求要求的功能。集成測試可能需要對(duì)多個(gè)類進(jìn)行組裝,也可能需要與以前已經(jīng)測試通過的模塊進(jìn)行組裝,是對(duì)產(chǎn)品組件的系統(tǒng)整合和執(zhí)行。集成測試可以根據(jù)模塊的大小分不同的級(jí)別,在現(xiàn)行的軟件開發(fā)中,每完成一個(gè)功能模塊都必須要進(jìn)行一次集成測試,使得你完成的模塊是一個(gè)可以運(yùn)行的產(chǎn)品。集成測試一般可以由項(xiàng)目小組的負(fù)責(zé)人(或指定一個(gè)小組成員)來完成。集成測試采用白盒式測試和黑盒測試
系統(tǒng)測試一般指項(xiàng)完代碼已經(jīng)全部完成,交給測試小組來進(jìn)行測試。進(jìn)行系統(tǒng)測試的人員獨(dú)立于開發(fā)小組,系統(tǒng)測試人員把完成的產(chǎn)品布署在相應(yīng)的計(jì)算機(jī)環(huán)境中,按照測試計(jì)劃進(jìn)行測試,驗(yàn)證系統(tǒng)是否滿足了指定的需求。系統(tǒng)測試除了測試產(chǎn)品應(yīng)滿足基本的功能需求外,還要對(duì)產(chǎn)品的性能,用戶界面,安全性,壓力,可靠性,安裝和反安裝等幾個(gè)方面進(jìn)行測試 系統(tǒng)測試采用黑盒測試
驗(yàn)收測試一般指產(chǎn)品交付給客戶,負(fù)責(zé)把產(chǎn)品布署在指定的計(jì)算機(jī)環(huán)境中。由用戶根據(jù)需求文檔,進(jìn)行的總體測試。驗(yàn)收測試的內(nèi)容和系統(tǒng)測試一樣,只是執(zhí)行者不同。都是除了測試系統(tǒng)完成基本功能外還要對(duì)性能,安全性,可靠性等進(jìn)行測試。驗(yàn)收測試也是采用黑盒測試 為什么需要測試?測試是對(duì)軟件質(zhì)量的保證,只能通過嚴(yán)格測試的軟件才是合格的軟件,測試并不是說讓軟件能夠編譯通過,測試是讓軟件產(chǎn)品最大程度的滿足客戶的需求度。回答實(shí)例:
考官:令狐沖,能談?wù)勀銈兪窃趺礃訉?duì)這個(gè)項(xiàng)目開發(fā)的嗎?
令狐沖:首先,我們這個(gè)項(xiàng)目已經(jīng)有了一個(gè)基本的用戶原始需求。但這是不夠的,我們都知道需求分析是十分重要的,所以我們?cè)谟脩粼夹枨笪臋n的基礎(chǔ)上,再次進(jìn)行了分析,通過不斷的與客戶溝通,充分的了解和熟悉用戶的業(yè)務(wù),完善了業(yè)務(wù)需求和功能需求。還對(duì)用戶業(yè)務(wù)需求和功能需求分析完善為實(shí)現(xiàn)軟件的必須的非功能性需求。得出項(xiàng)目需求規(guī)格說明書,經(jīng)過評(píng)審會(huì)議確認(rèn)通過。
根據(jù)需求規(guī)格說明書進(jìn)行用例分析,通過分析和討論找出充分的有效用例,并用Rose畫用例圖。對(duì)每一個(gè)用例進(jìn)行詳細(xì)的分析,完成每個(gè)用例的用例規(guī)約文檔,并編寫界面原型。劃分項(xiàng)目模塊。最后對(duì)用例及用例規(guī)約文檔進(jìn)行評(píng)審驗(yàn)證。編寫”代碼編寫規(guī)范”及界面風(fēng)格規(guī)范,數(shù)據(jù)庫設(shè)計(jì)規(guī)范,編寫概要設(shè)計(jì)說明書。
根據(jù)需求規(guī)格說明書和分析各個(gè)用例規(guī)約文檔,獲得數(shù)據(jù)庫的基本信息原型。也可以說是數(shù)據(jù)庫表的草稿,根據(jù)數(shù)據(jù)庫表草搞進(jìn)行分析,進(jìn)行數(shù)據(jù)庫設(shè)計(jì)和優(yōu)化。編寫數(shù)據(jù)庫設(shè)計(jì)說明書。采用PowerDesigner進(jìn)行數(shù)據(jù)庫建模,并生成SQL腳本。確定項(xiàng)目框架,設(shè)計(jì)公共模塊和輔助類。根據(jù)對(duì)數(shù)據(jù)庫模型和用例規(guī)約文檔的分析,列出對(duì)象清單和理清對(duì)象關(guān)系。用Rose來畫類圖。對(duì)每一個(gè)用例都用rose畫出時(shí)序圖。編寫詳細(xì)設(shè)計(jì)說明書。列出任務(wù)清單,分組進(jìn)行代碼編寫。在代碼編寫階段,先統(tǒng)一完成所有的實(shí)體類。對(duì)于非實(shí)體類則先完成類的框架,也就是只寫方法和注釋文字。具體方法的實(shí)現(xiàn)暫時(shí)為空。然后再進(jìn)行代碼填寫。每完成一個(gè)類的代碼編譯通過后都要進(jìn)行重構(gòu)和單元測試。每完成一個(gè)功能和模塊都由會(huì)由小組長進(jìn)行集成測試。使得完成的模塊是一個(gè)真正可以運(yùn)行的,可見的功能實(shí)現(xiàn)。
在各個(gè)小組都完成自己的模塊后就進(jìn)行模塊整合,進(jìn)行一次大規(guī)模的集成測試。然后把產(chǎn)品產(chǎn)給產(chǎn)品測試小組進(jìn)行系統(tǒng)測試。
問題之
四、你們是怎么保證軟件開發(fā)的質(zhì)量的?
分析:這個(gè)問題其實(shí)上面的講解已經(jīng)給了答案了。軟件質(zhì)量是軟件實(shí)現(xiàn)對(duì)需求的滿足度。開發(fā)的軟件越滿足客戶的需求,說明軟件的質(zhì)量越高。反之就是質(zhì)量越低。盡管你開發(fā)的軟件使用了新的技術(shù),良好的設(shè)計(jì),豐富的功能;但是這些功能都不是客戶需要的,客戶需要的功能沒有實(shí)現(xiàn)或者是很多沒有實(shí)現(xiàn)。這樣的軟件也是失敗的軟件。為了保證軟件質(zhì)量,也就是讓開發(fā)的軟件最大程度滿足客戶的需求,只有兩個(gè)方法。一個(gè)是獲得充分完整的需求,二是能過測試,以需求為中心編寫測試計(jì)劃。來保證軟件合乎需求?;卮饘?shí)例:
考官:你們是怎么來保證軟件的質(zhì)量的呢?
令狐沖:要保證軟件的質(zhì)量首先就要獲得完整的需求,在需求分析階段做了大量的工作與客戶各個(gè)環(huán)節(jié)的代表性用戶進(jìn)行溝通,充分了解和熟悉客戶的業(yè)務(wù)。并且從需求到設(shè)計(jì)階段都保持與用戶的溝通和交流。讓用戶的業(yè)務(wù)專家一直參與我們的需求,分析和設(shè)計(jì)工作。其次我們會(huì)在需求分析后就編寫測試計(jì)劃,在開發(fā)的每個(gè)階段都進(jìn)行相應(yīng)的測試來保證代碼是乎合相應(yīng)需求的。在代碼編寫過程中,每完成一個(gè)類都由程序進(jìn)行單元測試,每完成一個(gè)功能點(diǎn)或模塊都要進(jìn)行集成測試,每一次集成測試都對(duì)上一次的已經(jīng)測試通過的產(chǎn)品進(jìn)行迭代, 也就是以前測試成功的都會(huì)加入到本次測試中來。使得每個(gè)完成的功能和模塊完成后都是一個(gè)可以運(yùn)行的,可以看得到的產(chǎn)品;同時(shí)也歡迎用戶來見證我們的集成測試結(jié)果。代碼編寫完成后進(jìn)行最后一次集成測試,然后交由獨(dú)立的測試小組對(duì)項(xiàng)目進(jìn)行系統(tǒng)測試。問題之
五、你為什么離職的?(你為什么離開以前公司的?)
分析:這個(gè)問題幾乎在任何場合的面試都會(huì)有,有時(shí)是在技術(shù)面試的時(shí)候問,有時(shí)是在人事面試的時(shí)候問,有時(shí)會(huì)在技術(shù)面試和人事面試的時(shí)候都問。其實(shí)也比較好回答,回答的抽象一點(diǎn)比好。切記不要說以前公司的壞話,如果你這樣做。人家會(huì)想,你以后離職后同樣也會(huì)說這家公司的壞話.一般都是說為了某求更好的發(fā)展空間。讓人感覺你是經(jīng)過深思熟慮后才選擇他們公司的?;卮饘?shí)例:
考官:你為什么離開以前公司的?
令狐沖:以前公司對(duì)我很好,我在以前公司干得也很愉快。我因?yàn)楹贤狡?,為了獲得更好的發(fā)展空間及謀求對(duì)自己能持續(xù)發(fā)展的環(huán)境。并向公司辦理了離職手續(xù),完成了工作交結(jié)。(后面這句也可以不談)問題之
六、談?wù)勀愕穆殬I(yè)規(guī)化
分析:企業(yè)都希望他所招聘的人是潛力股,看你是不是一個(gè)追求上勁的人,還有想看看你能夠在企業(yè)長期干還是僅把其當(dāng)著一個(gè)跳板??偟恼f來,回答這個(gè)問題要讓人覺得你是一個(gè)可培養(yǎng),有潛力人。記住要看是什么樣的人來面試你。如果是項(xiàng)目經(jīng)理來面試你,你就不要說你以后的職業(yè)規(guī)化是項(xiàng)目經(jīng)理。你就可以說你的職業(yè)規(guī)化是成為架構(gòu)師,或者是技術(shù)專家等。否則他可能會(huì)認(rèn)為你是一個(gè)對(duì)其有威脅的人。就算他內(nèi)心知道這不算什么,可能心理總會(huì)有一點(diǎn)點(diǎn)不爽。如果是老總面試或人事問你這樣的問題,你則可以說項(xiàng)目經(jīng)理也無妨,不過要給人有一種覺穩(wěn)的感覺。回答實(shí)例:
考官:你的職業(yè)規(guī)化是怎么樣的呢?(考官是項(xiàng)目經(jīng)理)
令狐沖:我思維能力比較強(qiáng),擅于邏輯分析。在之前的工作中積累了一定的架構(gòu)經(jīng)驗(yàn),以后就想成為一名架構(gòu)師和技術(shù)專家
寫在最后:上面的這些問題都是面試中十分常見的的問題,比較難以回答的。有些看似簡單卻不知從何說起。有些看似復(fù)雜卻又并不復(fù)雜。因?yàn)楹芏嗳硕既鄙夙?xiàng)目經(jīng)驗(yàn),對(duì)軟件開發(fā)的過程相對(duì)陌生,而老師講這方面的知識(shí)也比較少,如果你沒有一定的代碼和項(xiàng)目積累就算老師講你也很難去體會(huì)、理解。再說這方面的內(nèi)容太要求實(shí)際經(jīng)驗(yàn)和日月積累,老師也不好講?,F(xiàn)在我采用把枯燥的概念和實(shí)際的項(xiàng)目結(jié)合起來進(jìn)行歸納,從而形成這樣一個(gè)答題技巧。并且對(duì)其中的一些技術(shù)結(jié)合實(shí)際進(jìn)行分析和總結(jié)。希望閱讀者能快速的知其然也知其所以然。從而能夠提高面試的成功率。當(dāng)然這僅僅是一個(gè)答題技巧,關(guān)鍵還是需要知識(shí)的積累。有道是“不積跬步,無以至千里;不聚細(xì)流,不以成江河”。這次完成此文也是我自己對(duì)知識(shí)的一次梳理,我并沒有去查閱和考證書本。我想完全通過自己的語言來描述項(xiàng)目開發(fā)的過程和一些細(xì)節(jié)。又因我實(shí)在是才疏學(xué)淺,真的希望大家能對(duì)我的不當(dāng)及錯(cuò)誤之處指出并加以指教,我就涕感淚流了。不管是技術(shù)還是人生,我才剛剛上路呢!
“本項(xiàng)目結(jié)構(gòu)上分為表現(xiàn)層、業(yè)務(wù)層和數(shù)據(jù)訪問層,層次間的依賴關(guān)系自下到上。采用的技術(shù)有 Struts,Spring,Hibernate,Log4J,JDom等。其中表現(xiàn)層采用Struts框架開發(fā);業(yè)務(wù)層封裝業(yè)務(wù)流程,為適應(yīng)業(yè)務(wù)的變 更,每一業(yè)務(wù)模塊均有專門的接口及實(shí)現(xiàn)類,利用Spring的IoC功能將實(shí)現(xiàn)類注入給表現(xiàn)層的Action;數(shù)據(jù)訪問層借助于Hibernate實(shí)現(xiàn),代碼簡潔且可適應(yīng)不同的數(shù)據(jù)庫。事務(wù)部分利用Spring的聲明式事務(wù)管理。為提高性能,采用Servlet Filter實(shí)現(xiàn)了緩存代理”
這段描述簡單的勾劃出了系統(tǒng)的結(jié)構(gòu),也表現(xiàn)出你非常熟悉Struts,Spring,Hiberante這幾種技術(shù)。
同時(shí)可以注意到,其中一些重要環(huán)節(jié)描述的十分簡略,比如事務(wù)、緩存代理,這是故意的。
面試的時(shí)候很多人都怕對(duì)方突然問一個(gè)自己沒有準(zhǔn)備的問題,往往缺乏應(yīng)變能力。一方面你需要多進(jìn)行專門的練習(xí),另一方面要知道面試時(shí)你并不總是被動(dòng)的,等待對(duì)方發(fā)問。
如果你給對(duì)方的只是一份普普通通的簡歷,里面只提到了大家都會(huì)提及的JSP,Struts,那你只好等待對(duì)方隨機(jī)的問題了。但是如果你的項(xiàng)目描 述像剛才那么寫,對(duì)方就很可能會(huì)問你到底是如何在Spring中應(yīng)用事務(wù)、如何使用緩存代理(如果對(duì)方是技術(shù)人員的話),這時(shí)你已經(jīng)變被動(dòng)為主動(dòng)啦??當(dāng) 然,前提是你寫的這些技術(shù)要點(diǎn)一定是自己掌握的,事先已經(jīng)想好如何表達(dá)的!
第二篇:java程序員面試寶典_java程序員面試經(jīng)驗(yàn)
java程序員面試寶典_java程序員面試經(jīng)驗(yàn)
一些Java軟件工程師求職者們,可能因?yàn)榉N種原因,對(duì)Java語言及其深層原理掌握不牢固,以至于在面試中犯各種錯(cuò)誤。本期喬布簡歷小編將為大家?guī)淼闹黝}是java程序員面試經(jīng)驗(yàn),一起來了解一下java程序員面試寶典吧~
關(guān)鍵詞:java程序員面試寶典,java程序員面試經(jīng)驗(yàn)
以下是一些java程序員面試需要注意的地方:
1、對(duì)于此類崗位而言,具體的項(xiàng)目是用人單位招聘時(shí)最看重的參考因素。即便是沒有工作經(jīng)驗(yàn)的應(yīng)屆生,也要準(zhǔn)備可作為自己能力參考的具體作品。如果從未參加過任何項(xiàng)目,可以準(zhǔn)備自己在相關(guān)領(lǐng)域的課程設(shè)計(jì),如有必要還可以將其修改為完整的項(xiàng)目。對(duì)于這份具體作品,求職者要有相當(dāng)?shù)牧私狻Mㄟ^求職者對(duì)于該作品的講解,招聘官會(huì)判斷求職者的技術(shù)能力到底如何。
2、Java程序員要求掌握的技能會(huì)比較多,求職者在簡歷上可以分類依次列舉出自己所掌握的專業(yè)技能,有證書的列出自己所持有的證書名稱。在面試的時(shí)候,可以對(duì)自己所掌握的技能做出介紹,并輔以實(shí)例證明,這樣會(huì)更具有說服力。
3、基礎(chǔ)很重要,不要生疏了。不管應(yīng)聘什么程序員崗位,基礎(chǔ)永遠(yuǎn)都是最重要的。只有有了踏實(shí)的基礎(chǔ),再輔以較好的學(xué)習(xí)能力,這樣才不會(huì)被互聯(lián)網(wǎng)日新月異的變化甩開。很多程序員在面試時(shí)往往是因?yàn)榇鸩怀鲎罨A(chǔ)的問題才會(huì)錯(cuò)失工作機(jī)會(huì)。面試前鞏固一下基礎(chǔ)知識(shí),永遠(yuǎn)不要輕視了基礎(chǔ)。
程序員要時(shí)刻關(guān)注技術(shù)前沿,將新技術(shù)與自己所從事的工作聯(lián)系到一起,做一些深入思考,面試時(shí)談?wù)勥@樣的問題也是向面試官展現(xiàn)自己學(xué)習(xí)能力的好機(jī)會(huì)~
本文來源簡歷http://cv.qiaobutang.com/knowledge/articles/5652f8b30cf2a980ccfbcec2
第三篇:JAVA程序員面試技巧
java程序員面試題 第一部分:選擇題 question no: 1
1、public class test { public static void changestr(string str){ } public static void main(string[] args){ string str=1234;changestr(str);system.out.println(str);} } please write the output result : question no:2 1.public class test { 2.static boolean foo(char c){ 3.system.out.print(c);4.return true;5.} 6.public static void main(string[] argv){ 7.int i =0;8.for(foo(a);foo(b)&&(i<2);foo(c)){ 9.i++;10.foo(d);12.} 13.} 14.} what is the result? a.abdcbdcb b.abcdabcd d.an exception is thrown at runtime.question no: 3 1.class a { 2.protected int method1(int a, int b){ return 0;} 3.} which two are valid in a class that extends class a?(choose two)a.public int method1(int a, int b){ return 0;} b.private int method1(int a, int b){ return 0;} c.private int method1(int a, long b){ return 0;} d.public short method1(int a, int b){ return 0;} e.static protected int method1(int a, int b){ return 0;} question no: 4 1.public class outer{ 2.public void someoutermethod(){ 3.// line 3 4.} 5.public class inner{} 6.public static void main(string[]argv){ 7.outer o = new outer();8.// line 8 9.} 10.} which instantiates an instance of inner? a.new inner();// at line 3 b.new inner();// at line 8 c.new o.inner();// at line 8 d.new outer.inner();// at line 8//new outer().new inner()question no: 5 which method is used by a servlet to place its session id in a url that is written to the servlet’s response output stream? question no: 6 which two are equivalent?(choose two)a.b.c.d.e.f.g.question no: 7 which of the following statements regarding the lifecycle of a session bean are correct? 1.java.lang.illegalstateexception is thrown if sessioncontext.getejbobject()is invoked when a stateful session bean instance is passivated.2.sessioncontext.getrollbackonly()does not throw an exception when a session bean with bean-managed transaction demarcation is activated.3.an exception is not thrown when sessioncontext.getusertransaction()is called in the afterbegin method of a bean with container-managed transactions.5.accessing resource managers in the sessionsynchronization.afterbegin method of a stateful session bean with bean-managed transaction does not throw an exception.第二部分:概念題
1.描述struts體系結(jié)構(gòu)?對(duì)應(yīng)各個(gè)部分的開發(fā)工作主要包括哪些? 3.jsp有哪些內(nèi)置對(duì)象和動(dòng)作?它們的作用分別是什么?
4、sql問答題
select * from table 和
select * from table where name like %% and addr like %% and(1_addr like %% or 2_addr like %% or 3_addr like %% or 4_addr like %%)的檢索結(jié)果為何不同?
5、sql問答題
表結(jié)構(gòu):
1、表名:g_cardapply 字段(字段名/類型/長度): g_applyno varchar 8;//申請(qǐng)單號(hào)(關(guān)鍵字)g_applydate bigint 8;//申請(qǐng)日期 g_state varchar 2;//申請(qǐng)狀態(tài)
2、表名:g_cardapplydetail 字段(字段名/類型/長度): g_applyno varchar 8;//申請(qǐng)單號(hào)(關(guān)鍵字)g_name varchar 30;//申請(qǐng)人姓名 g_idcard varchar 18;//申請(qǐng)人身份證號(hào) g_state varchar 2;//申請(qǐng)狀態(tài)
其中,兩個(gè)表的關(guān)聯(lián)字段為申請(qǐng)單號(hào)。
題目:
1、查詢身份證號(hào)碼為***的申請(qǐng)日期
2、查詢同一個(gè)身份證號(hào)碼有兩條以上記錄的身份證號(hào)碼及記錄個(gè)數(shù)
3、將身份證號(hào)碼為***的記錄在兩個(gè)表中的申請(qǐng)狀態(tài)均改為07
4、刪除g_cardapplydetail表中所有姓李的記錄
華為java筆試題
一、單項(xiàng)選擇題
1.java是從()語言改進(jìn)重新設(shè)計(jì)。a.a(chǎn)da b.c++ c.pasacal d.basic篇二:java程序員面試注意事項(xiàng)
一、回答問題的思路
先正面敘述一些基本的核心知識(shí),然后描述一些特殊的東西,最后再來一些錦上添花的東西。要注意有些不是錦上添花,而是畫蛇添足的東西,不要隨便寫上。把答題像寫書一樣寫。我要回答一個(gè)新技術(shù)的問題大概思路和步驟是:我們想干什么,干這個(gè)遇到了什么問題,現(xiàn)在用什么方式來解決。其實(shí)我們講課也是這樣一個(gè)思路。
答題時(shí),先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)。答案的層次分明,條理清楚都非常重要,從這些表面的東西也可以看出一個(gè)人的習(xí)慣、辦事風(fēng)格、條理等。要講你做出答案的思路過程,或者說你記住答案的思想都寫下來。把答題想著是辯論賽。答題就是給別人講道理、擺事實(shí)。答題不局限于什么格式和形式,就是要將自己的學(xué)識(shí)展現(xiàn)出來!
另外,不要因?yàn)槿思翌}目本來就模棱兩可,你就心里膽怯和沒底氣了,不敢回答了。你要大膽地指出對(duì)方題目很模糊和你的觀點(diǎn),不要把面試官想得有多高,其實(shí)他和你就是差不多的,你想想,如果他把你招進(jìn)去了,你們以后就是同事了,可不是差不多的嗎?
二、關(guān)于就業(yè)薪水
如果你是應(yīng)屆生,那不能要高工資,好比大餅的故事,要拿高工資,就去中關(guān)村!少數(shù)人基礎(chǔ)確實(shí)很好,在校期間確實(shí)又做過一些項(xiàng)目,那仍然是可以要到相對(duì)高的工資的。
初級(jí)程序員薪水:2000-4500 中級(jí)程序員薪水:4000-7000 高級(jí)程序員薪水:7000以上
公司招聘程序員更看重的要用到的編碼技術(shù)、而不是那些業(yè)務(wù)不太相關(guān)的所謂項(xiàng)目經(jīng)歷:
三、公司想招什么樣的人
對(duì)于一些公司接到了一些項(xiàng)目,想招聘一些初中級(jí)的程序員過來幫助寫代碼,完成這個(gè)項(xiàng)目,你更看重的是他的專業(yè)技術(shù)功底,還是以前做過幾個(gè)項(xiàng)目的經(jīng)歷呢?我們先排除掉那些編碼技術(shù)功底好,又正好做過相似項(xiàng)目的情況,實(shí)際上,這種魚和熊掌兼得的情況并不常見。其實(shí)公司很清楚,只要招聘進(jìn)來的人技術(shù)真的很明白,那他什么項(xiàng)目都可以做出來,公司招人不是讓你去重復(fù)做你以前的項(xiàng)目,而是做一個(gè)新項(xiàng)目,業(yè)務(wù)方面,你只要進(jìn)了項(xiàng)目團(tuán)隊(duì),自然就能掌握。所以,大多數(shù)招聘單位在招聘那些編碼級(jí)別的程序員時(shí)也沒指望能招聘到做過類似項(xiàng)目的人,也不會(huì)刻意去找做過類似項(xiàng)目的人,用人單位也不是想把你招進(jìn),然后把你以前做過的項(xiàng)目重做一遍,所以,用人單位更看重招進(jìn)來的人對(duì)要用到的編碼技術(shù)的功底到底怎樣,技術(shù)扎實(shí)不扎實(shí),項(xiàng)目則只要跟著開發(fā)團(tuán)隊(duì)走,自然就沒問題。除非是一些非常專業(yè)的行業(yè),要招聘特別高級(jí)的開發(fā)人員和系統(tǒng)分析師,招聘單位才特別注重他的項(xiàng)目經(jīng)驗(yàn)和行業(yè)經(jīng)驗(yàn),要去找到行業(yè)高手,公司才關(guān)心項(xiàng)目和與你聊項(xiàng)目的細(xì)節(jié),這樣的人通常都不是通過常規(guī)招聘渠道去招聘進(jìn)來的,而是通過各種手段挖過來的,這情況不再我今天要討論的范圍中。
四、公司面試會(huì)問什么,.技術(shù)學(xué)得明白不明白,人家?guī)讉€(gè)問題就把你的深淺問出來了,只要問一些具體的技術(shù)點(diǎn),就很容易看出你是真懂還是假懂,很容看出你的技術(shù)深度和實(shí)力,所以,技術(shù)是來不得半點(diǎn)虛假的,必須扎扎實(shí)實(shí)。
由于項(xiàng)目的種類繁多,涉及到現(xiàn)實(shí)生活中的各行各業(yè),什么五花八門的業(yè)務(wù)都有,例如,酒店房間預(yù)定管理,公司車輛調(diào)度管理,學(xué)校課程教室管理,超市進(jìn)銷存管理,知識(shí)內(nèi)容管理,等等……成千上萬等等,但是,不管是什么項(xiàng)目,采用的無非都是我們學(xué)習(xí)的那些目前流行和常用的技術(shù)。技術(shù)好、經(jīng)驗(yàn)豐富,則項(xiàng)目做出來的效率高些,程序更穩(wěn)定和更容易維護(hù)些;技術(shù)差點(diǎn),碰碰磕磕最后也能把項(xiàng)目做出來,無非是做的周期長點(diǎn)、返工的次數(shù)多點(diǎn),程序代碼寫得差些,用的技術(shù)笨拙點(diǎn)。如果一個(gè)人不是完完全全做過某個(gè)項(xiàng)目,他是不太關(guān)心該項(xiàng)目的業(yè)務(wù)的,對(duì)其中的一些具體細(xì)節(jié)更是一竅不知,(如果我招你來做圖書管理,你項(xiàng)目經(jīng)歷說你做過汽車調(diào)度,那我能問你汽車調(diào)度具體怎么回事嗎?不會(huì),所以,你很容易蒙混過去的)而一個(gè)程序員的整個(gè)職業(yè)生涯中能實(shí)實(shí)在在和完完整整做出來的項(xiàng)目沒幾個(gè),更別說在多個(gè)不同行業(yè)的項(xiàng)目了,有的程序員更是一輩子都只是在做某一個(gè)行業(yè)的項(xiàng)目,結(jié)果他就成了這個(gè)行業(yè)的專家(專門干一件事的家伙)。所以,技術(shù)面試官通常沒正好親身經(jīng)歷過你簡歷寫的那些項(xiàng)目,他不可能去問你寫的那些項(xiàng)目的具體細(xì)節(jié),而是只能泛泛地問你這個(gè)項(xiàng)目是多少人做的,做了多長時(shí)間,開發(fā)的過程,你在做項(xiàng)目的過程中有什么心得和收獲,用的什么技術(shù)等面上的問題,所以,簡歷上的項(xiàng)目經(jīng)歷可以含有很多水分,很容易作假,技術(shù)面試官也無法在項(xiàng)目上甄別你的真?zhèn)巍?/p>
五、簡歷怎么寫
簡歷該怎么寫:精通哪些技術(shù),有一些什么項(xiàng)目經(jīng)歷
六、怎樣達(dá)到簡歷上的標(biāo)準(zhǔn)(培訓(xùn)中心教項(xiàng)目的目的)教項(xiàng)目是為了鞏固和靈活整合運(yùn)用技術(shù),增強(qiáng)學(xué)習(xí)的趣味性,熟悉做項(xiàng)目的流程,或得一些專業(yè)課程中無法獲得的特有項(xiàng)目經(jīng)驗(yàn),增強(qiáng)自己面試的信心。講的項(xiàng)目應(yīng)該真實(shí)可靠才有價(jià)值,否則,表面上是項(xiàng)目,實(shí)際上還是知識(shí)點(diǎn)的整合,對(duì)鞏固技術(shù)點(diǎn)和增強(qiáng)學(xué)習(xí)的趣味性,但無法獲得實(shí)際的項(xiàng)目經(jīng)驗(yàn)。
第四篇:java程序員面試必讀
Java程序員,面試必讀
☆★☆★快來!10月25日讀者見面會(huì)☆★☆★
清華大學(xué)出版社《Java程序員,上班那點(diǎn)事兒》作者:鐘聲 章節(jié):1.2.2:
面試是一個(gè)“簡單”而又“復(fù)雜”的事情,正因?yàn)樗哂小昂唵巍焙汀皬?fù)雜”的雙重性質(zhì),才使我們對(duì)這個(gè)問題不敢掉以輕心。介紹如何面試,有時(shí)候甚至可以寫一本書,而有時(shí)候,你什么都不準(zhǔn)備卻可以面試成功。
因?yàn)?,面試的成功與否完全取決于主考官,因此,這門學(xué)問的主要科目就是研究主考官的招聘心理。
我們研究好主考官的招聘心理,自然就可以做到“知己知彼”了。
本小節(jié)只是說說面試的“心理戰(zhàn)”,而想真正的能夠?qū)Υ鹑缌?,需要的是“真功夫”,要想具備“真功夫”還是需要真正的技術(shù)水平作為前提的,本小節(jié)的內(nèi)容只是給那些已經(jīng)具備相應(yīng)技術(shù)水平的應(yīng)聘者提供一定的應(yīng)聘技巧而已,以避免沒有把自己的“真功夫”完全展示出來從而喪失工作機(jī)會(huì)。
面試前對(duì)自己的心理暗示:
面試并不是考試,只是和未來的同事聊聊天。
“心理戰(zhàn)”對(duì)象,可能出現(xiàn)的主考官如下幾類:
人物1,人力資源部主管(HR)
人物2,你未來的主管
人物3,你未來主管的主管
我們分別來分析遇到不同類型的主考官的不同情況。
人物1:人力資源部主管(HR)
“人物1”的出現(xiàn)往往是進(jìn)行該職位的初審,給出一個(gè)概觀定論,如果合格將會(huì)提交給“人物2”?!叭宋?”他們所要進(jìn)行的是對(duì)人的心理和基本技能方面的一個(gè)判斷。
不過,也有一些公司,首次面試仍然是由業(yè)務(wù)主管來進(jìn)行,然后再將初審合格的人交給人力部門來復(fù)試,如果,是這種情況,你應(yīng)該就算90%入職成功了,因?yàn)?,這個(gè)復(fù)試往往是走個(gè)形式,看看此人有沒有被主管忽略的大問題,如果沒有,基本就差不多了。
那么,我們僅僅以第一種情況為例,看看“人物1”大多提出的是哪些問題。
常見提問1:請(qǐng)你自我介紹一下
這個(gè)問題,是人力部主考官必問的問題,這個(gè)問題的提問并不是真的想了解你的個(gè)人情況,因?yàn)椋愕那闆r基本上在簡歷上都寫著呢。他提出這個(gè)問題的主要目的是來考察你的語言表達(dá)能力,和你在表達(dá)過程中的一些細(xì)節(jié)表現(xiàn)。
所以,我們應(yīng)該怎么回答呢?
看看如下對(duì)話:
HR:“請(qǐng)你自我介紹一下”
A君:“您看簡歷吧,基本上我都寫在簡歷上了?!?/p>
HR:汗?
HR:“請(qǐng)你自我介紹一下”
B君:“我叫XXX,年齡24,性別男,籍貫??”
HR:倒?
HR:“請(qǐng)你自我介紹一下”
C君:“這話從何說起呢?話說10年前??”
HR:暈?
首先,不要認(rèn)為主考官?zèng)]有認(rèn)真的看你的簡歷,沒有看你的簡歷就讓你來面試,是在浪費(fèi)他自己的時(shí)間,所以絕對(duì)是首先認(rèn)為簡歷比較合適,才約你來的。
第二,自我介紹并不是讓你重復(fù)一下你簡歷上的所有內(nèi)容,那些內(nèi)容簡歷上都有,主考官主要是想聽聽你如何表達(dá)和語言的邏輯能力。
第三,這個(gè)表達(dá)不要滔滔不絕,要有張有弛,有收有放,主要將自己的想說的優(yōu)勢部分分別道來,能夠通過你的介紹讓人感覺到你的“親和力”為佳。
“語言表達(dá)能力”并非我們?nèi)粘Kf的“能侃”或者“口才”,這是片面的理解,在面試過程中,我們要展現(xiàn)的“語言表達(dá)能力”是指,“語言親和力”,能夠讓人感受到你的“溝通”能力。
回答范例:
您好!我來自XXX大學(xué),是應(yīng)屆畢業(yè)生,所學(xué)專業(yè)是計(jì)算機(jī)應(yīng)用技術(shù),我在校期間參加多項(xiàng)課余工作,參與了多個(gè)應(yīng)用系統(tǒng)的開發(fā)與設(shè)計(jì),熟練掌握J(rèn)ava開發(fā)工具和應(yīng)用系統(tǒng)的各種開發(fā)方法。在學(xué)習(xí)與工作期間,總結(jié)與實(shí)踐了各種技術(shù)實(shí)現(xiàn)手段,有了一些小的積累。
近期已經(jīng)畢業(yè),看到您公司的招聘信息,感覺自己的技術(shù)與能力非常合適,就投遞了簡歷。希望能過了您這關(guān),呵呵??(注:最后的微笑最好不要太牽強(qiáng),目的是緩和氣氛)
大家看到了,這個(gè)回答范例的自我介紹非常簡練,但是,什么也沒有落下。既實(shí)事求是的說了自己是應(yīng)屆畢業(yè)生,又說明了自己雖然是應(yīng)屆畢業(yè)生,但是參加了很多的課余工作,并且具有實(shí)際的項(xiàng)目開發(fā)經(jīng)驗(yàn),而且有了一些小的積累。
既說了自己的對(duì)這份工作和自己能力之間的考量,又表達(dá)了自己對(duì)主考官的期望。
意思表達(dá)時(shí)不卑不亢,言簡意賅,讓人聽起來就感覺很舒服。
這時(shí)候你的目的就達(dá)到了,展現(xiàn)出自己的“語言表達(dá)能力”和“語言親和力”,同時(shí)又能夠讓人感受到你的“溝通”能力。
常見提問2:你最大的優(yōu)點(diǎn)是什么?
這個(gè)問題如果是HR問,則最好回答了。
回答這個(gè)問題的關(guān)鍵是“圍繞自己的技術(shù)特長”展開話題,為什么這樣?
因?yàn)?,往往HR都不懂技術(shù),圍繞技術(shù)說自己的特長很容易給他說暈(當(dāng)然,個(gè)別懂技術(shù)的HR除外)。這里要注意的是,在說技術(shù)問題的時(shí)候,不要讓HR感覺自己什么都不懂,要注意說話的節(jié)奏,不要太快,不要太驕傲。
常見提問3:你最大的缺點(diǎn)是什么?
這個(gè)問題是HR的殺手锏,可以說這是HR的狠招,這個(gè)問題最難回答,一般應(yīng)聘者都本著“揚(yáng)長避短”的心態(tài)去面試,冷不防冒出這么一個(gè)問題,還真是挺棘手的。
需要清楚HR問這個(gè)問題的目的,其目的仍然不是要真的需要知道你的缺點(diǎn)是什么,還是看看你的表達(dá)能力,尤其是需要考察應(yīng)聘者面對(duì)危機(jī)的時(shí)候的處理能力。所以,我們不要用下列方式作答:
1、說出自己的真實(shí)缺點(diǎn),尤其是在前面談話中沒有暴露出來的缺點(diǎn)
2、認(rèn)為說說某些大眾化的缺點(diǎn)即可,認(rèn)為說一兩個(gè)無妨
3、說自己沒有缺點(diǎn),強(qiáng)調(diào)自己比較完美
總之,HR心里想的是:需要了解他面前的這個(gè)人在面對(duì)困難的時(shí)候,是如何處理問題的,從處理危機(jī)的方法來判斷此人的處理事情的靈活性。當(dāng)然,如果此人自己暴露出自己的缺點(diǎn)當(dāng)然更好,省得需要去想辦法問更多的問題去發(fā)現(xiàn)了。
所以,在回答這個(gè)問題的時(shí)候,要看起來“真誠”、“坦白”,同時(shí),說出來的并非自己的缺點(diǎn),而是最好在別人看來是優(yōu)點(diǎn)的那些方面。
這個(gè)問題問的概率很大,通常如果求職者說自己小心眼、愛忌妒人、非常懶、脾氣大、工作效率低,肯定不會(huì)錄用你。HR喜歡求職者從自己的優(yōu)點(diǎn)說起,中間加一些小缺點(diǎn),最后再把問題轉(zhuǎn)回到優(yōu)點(diǎn)上,目的還是突出自己優(yōu)點(diǎn)的部分。
HR喜歡聰明的求職者。
這一點(diǎn)比較難掌握,我們也給出范例:
回答范例:
呵呵,這個(gè)問題好難回答啊!我想想??(親和力表現(xiàn),也緩解了自己的緊張情緒)
我的缺點(diǎn)是,比較執(zhí)著,比如在技術(shù)方面比較愛鉆研,有的時(shí)候會(huì)為一個(gè)技術(shù)問題加班到深夜。還有就是,工作比較按部就班,總是按照主管的要求完成任務(wù)。另外的缺點(diǎn)是,總在自己的工作范圍內(nèi)有創(chuàng)新意識(shí),并沒有擴(kuò)展給其他同事。這些問題我想我可以進(jìn)入公司以后以最短的時(shí)間來解決,我的學(xué)習(xí)能力很強(qiáng),我相信可以很快融入公司的企業(yè)文化,進(jìn)入工作狀態(tài)。
嗯??,我想就這些吧。
這個(gè)回答范例開頭第一句話就讓人覺得很自然,因?yàn)檫@個(gè)求職者所說的話恰恰表達(dá)了一般人聽到這個(gè)問題后的心理狀態(tài),還有你一定會(huì)有一個(gè)思考的時(shí)間,因?yàn)?,誰也不會(huì)立刻說出自己的缺點(diǎn)。
后面說出的幾個(gè)缺點(diǎn)都是一環(huán)套一環(huán)的,說了自己“比較執(zhí)著”,但又說自己其實(shí)是“比較愛鉆研”,說自己總是“按部就班”,但又補(bǔ)充了其實(shí)那是“按照主管的要求完成任務(wù)”,這時(shí)候,如果用人單位覺得,此人是不是沒有“創(chuàng)新思維”的時(shí)候,馬上就補(bǔ)充道“在自己的范圍內(nèi)有創(chuàng)新意識(shí)”,至于“沒有擴(kuò)展給其他同事”這件事,其實(shí)無關(guān)緊要,干脆就賣給HR吧。
以上回答確實(shí)賣弄了些“技巧”,相信HR也一定能看的出來,但是,即使看出來了也無妨,HR也會(huì)心領(lǐng)神會(huì),知道你是一個(gè)比較善于溝通并且善于表達(dá)的人。
人物2:你未來的主管
當(dāng)見到未來主管的時(shí)候,往往是應(yīng)聘者已經(jīng)過了HR那一關(guān),或者應(yīng)聘者已經(jīng)過了筆試的那一關(guān),因此見到這位人物意味著距離成功已經(jīng)向前進(jìn)了一步。
“人物2”的面試也有他的目的,他是和你在日常工作中接觸最多的人,作為你的直接上司,他需要在工作中經(jīng)常給你分配任務(wù),他需要對(duì)他的主管負(fù)責(zé),因此,他招聘的這個(gè)人選必須是可以幫助他完成他整個(gè)Team的目標(biāo)的人。
往往那個(gè)吸引你來面試的“招聘啟示”就是這個(gè)人物所撰寫的,因此,其實(shí)在你和他見面以前,早已經(jīng)通過“招聘啟示”和他有過交往了。因此,從“招聘啟示”中就可以初顯這位主管的端倪。
注意,主管同志并不是人事領(lǐng)域的高手,不會(huì)用各種語言技巧去發(fā)掘你身上的缺點(diǎn)或者優(yōu)點(diǎn),往往問題都是實(shí)打?qū)嵉?,或者比較一針見血的,而且,更偏重于日常工作。
那么,我們下面和他過過招。
常見提問1:請(qǐng)你自我介紹一下
這個(gè)問題,HR也問過了,到他那里有可能還會(huì)問,主管問這個(gè)問題和HR雖然問的問題一致,但是,其目的并不是完全相同的。
他不僅僅想考察一下你的表達(dá)能力,同時(shí)還想考察一下你思路的清晰程度。
我們?cè)诨卮鹚膯栴}前,一定要想清楚一件事:他是該技術(shù)領(lǐng)域的高手,就是我們“程序員修煉三境界”中描述的“第二層境界”的那個(gè)人物,如果還想更清楚的了解這個(gè)人物,可以去重新看看前面的那個(gè)章節(jié)。
這個(gè)自我介紹最好說的較為簡潔,不要過分炫耀自己的技術(shù)如何如何強(qiáng),免得引起這位主管的興趣,引起他的技術(shù)興趣沒有什么好處,只會(huì)帶來更多的技術(shù)問題的發(fā)問。
常見提問2:你最引以為自豪的項(xiàng)目是什么?
他問這個(gè)問題的意圖是想考察你的成長路徑和編程習(xí)慣,因?yàn)?,最讓你自豪的?xiàng)目往往是你成長最快的項(xiàng)目,那個(gè)成長最快的項(xiàng)目往往會(huì)給你今后的編程習(xí)慣留下很多痕跡。
所以,通過你對(duì)那個(gè)引以為豪的項(xiàng)目的描述,有經(jīng)驗(yàn)的他會(huì)很快鎖定你技術(shù)成長中的缺陷和閃光點(diǎn),從而判斷是否能夠“為我所用”。
你最好拿出一個(gè)自己最擅長技術(shù)的那個(gè)項(xiàng)目進(jìn)行介紹,這個(gè)項(xiàng)目最好能夠比較貼近招聘要求的那些指標(biāo)。如果,沒有做過什么有規(guī)模的正規(guī)項(xiàng)目,你就拿些自己非常擅長或者有創(chuàng)意的開發(fā)作品來說。這樣做的好處是,他聽完你的介紹后,會(huì)接下來進(jìn)行提問,他所有發(fā)問,你都成竹在胸了。
切忌拿一個(gè)別人的項(xiàng)目,或者自己參與很少的項(xiàng)目來介紹,如果這樣的話,一旦他深入的詢問這個(gè)項(xiàng)目的問題,很可能你會(huì)所答非所問,反而造成更嚴(yán)重的影響。你大可以和他大談特談你在那個(gè)項(xiàng)目中獲得的經(jīng)驗(yàn),那會(huì)引起此君的共鳴,有可能的話,說出一些你自己的小技巧,他會(huì)很高興。
常見提問3:如果我錄用你,你將怎樣開展工作
他問這個(gè)問題的意圖是,希望看看你對(duì)這個(gè)職位工作展開的一些設(shè)想,仍然是“實(shí)打?qū)崱睆墓ぷ鞒霭l(fā)來提問的。所以,你在回答這個(gè)問題的時(shí)候也要“實(shí)打?qū)崱保屑商摕o縹緲的一通“高、大、全”。
一般要列出自己的入職之后的工作計(jì)劃,而這些計(jì)劃需要詳盡,同時(shí)需要體現(xiàn)出你工作的嚴(yán)謹(jǐn)性,也不能是想當(dāng)然的說出一些與工作無關(guān)的計(jì)劃,這都有可能適得其反。
回答范例:
針對(duì)這個(gè)如何展開工作的問題,我目前僅僅是對(duì)咱們公司的大體情況有一個(gè)了解,因此,對(duì)這個(gè)職位的工作性質(zhì)僅僅是自己的一個(gè)理解。
所以呢,我也不知道是否合適,我只能說一個(gè)大概。
作為這個(gè)職位而言,我想我首先要對(duì)本公司的主營業(yè)務(wù)要有一個(gè)相當(dāng)?shù)牧私猓私馕覀児镜臉I(yè)務(wù)組成部分、業(yè)務(wù)的發(fā)展方向、我們面向的客戶性質(zhì)等等。
第二,我要了解所屬部門在公司中的地位,以及部門的工作目標(biāo),從而確定自身的工作努力方向。
第三,了解我參與項(xiàng)目的開發(fā)方式,架構(gòu)方式,緊密配合領(lǐng)導(dǎo)工作,盡快投入具體的開發(fā)工作。
這就是我開展工作的計(jì)劃。
從大到小的方式進(jìn)行了解,這么說可以讓領(lǐng)導(dǎo)知道你不是一個(gè)盲目工作的人,而是一個(gè)按部就班,穩(wěn)扎穩(wěn)打的人,使人覺得和你合作很踏實(shí)。另外,一定要強(qiáng)調(diào)所屬項(xiàng)目或部門的目標(biāo),因?yàn)檫@關(guān)系到面試你的主管的切身利益。最后,強(qiáng)調(diào)“盡快”投入開發(fā)工作,這樣,領(lǐng)導(dǎo)就放心了,你不是一個(gè)“只了解,不工作”的人。
面對(duì)主管唯一要盡量表現(xiàn)的就是,你看起來非常像一個(gè)“工具”,入職后馬上就可以發(fā)揮作用。
人物3:主管的主管
遇到“主管的主管”的時(shí),往往已經(jīng)是復(fù)試,這說明基本上已經(jīng)是最后一關(guān)了。但要注意,這個(gè)最后一關(guān)是非常關(guān)鍵的一“關(guān)”。因?yàn)?,往往如果你未來的主管在公司中某個(gè)專業(yè)夠權(quán)威的話,他的主管一般不會(huì)管招聘的事情。因此,你看到這位“老大”的原因,多半是你未來的那位主管的專業(yè)地位還沒有“穩(wěn)定”。
最后的“搏殺”
過程大概是這樣的,一般會(huì)將兩個(gè)或三個(gè)人提交給“老大”,讓“老大”定奪,去選擇其中的一個(gè)人,因此,這個(gè)階段是一個(gè)最后的“搏殺”關(guān)鍵階段。老大”關(guān)注的問題:成本+人員素質(zhì)
所以,我們?cè)诤汀袄洗蟆边^招的時(shí)候,一定要注意自己的言行,切忌不要穿“奇裝異服”,或者男士留有個(gè)性的頭發(fā)或胡子,總之一定要讓人看起來特別的“平?!保m然不是“西裝革履”但也要“衣冠整潔”。
因?yàn)?,老板們最不喜歡“個(gè)性”員工,而最喜歡的是“優(yōu)秀”的普通員工。
清華大學(xué)出版社《Java程序員,上班那點(diǎn)事兒》作者:鐘聲 章節(jié):1.2.2。
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)http://blog.csdn.net/useway/archive/2009/08/02/4402385.aspx
標(biāo)
明
出
處
:
第五篇:java程序員面試要點(diǎn)
第一,談?wù)刦inal, finally, finalize的區(qū)別。
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。finalize是 Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對(duì)象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
第二,Anonymous Inner Class(匿名內(nèi)部類)是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?
可以繼承其他類或完成其他接口,在swing編程中常用此方式。
第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。
Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實(shí)例被實(shí)例化。而通常的內(nèi)部類需要在外部類實(shí)例化后才能實(shí)例化。
第四,&和&&的區(qū)別。
&是位運(yùn)算符,表示按位與運(yùn)算,&&是邏輯運(yùn)算符,表示邏輯與(and).第五,HashMap和Hashtable的區(qū)別。
HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable.第六,Collection 和 Collections的區(qū)別。
Collection是集合類的上級(jí)接口,繼承與他的接口主要有Set 和List.Collections是針對(duì)集合類的一個(gè)幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作。
第七,什么時(shí)候用assert。
1.4新增關(guān)鍵字(語法),用于測試boolean表達(dá)式狀態(tài),可用于調(diào)試程序。使用方法 assert,表示如果表達(dá)式為真(true),則下面的語句執(zhí)行,否則拋出AssertionError。另外的使用方式assert < boolean表達(dá)式>:,表示如果表達(dá)式為真,后面的表達(dá)式忽略,否則后面表達(dá)式的值用于AssertionError的構(gòu)建參數(shù)。注意編譯時(shí)要增加-source 1.4 參數(shù),否則報(bào)錯(cuò)。]運(yùn)行時(shí)要增加 –ea參數(shù),否則assert行被忽略
第八,GC是什么? 為什么要有GC?
GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)測對(duì)象是否超過作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯示操作方法。
第九,String s = new String(“xyz”);創(chuàng)建了幾個(gè)String Object?
兩個(gè)
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)==12Math.round(-11.5)==-11round方法返回與參數(shù)最接近的長整數(shù),參數(shù)加1/2后求其floor.第十一,short s1 = 1;s1 = s1 + 1;有什么錯(cuò)? short s1 = 1;s1 += 1;有什么錯(cuò)?
short s1 = 1;s1 = s1 + 1;(s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類型)short s1 = 1;s1 += 1;(可以正確編譯)
第十二,sleep()和 wait()有什么區(qū)別?
sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用 sleep不會(huì)釋放對(duì)象鎖。wait是Object類的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
第十三,Java有沒有g(shù)oto?
沒有
很十三的問題,如果哪個(gè)面試的問到這個(gè)問題,我勸你還是別進(jìn)這家公司。
第十四,數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法?
數(shù)組沒有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。
String有有l(wèi)ength()這個(gè)方法。
第十五,Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫(Overriding)。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì)它而言,父類中的定義如同被“屏蔽”了。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
第十六,Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢? 是用==還是equals()? 它們有何區(qū)別?
Set里的元素是不能重復(fù)的,那么用iterator()方法來區(qū)分重復(fù)與否。equals()是判讀兩個(gè)Set是否相等。
equals()和==方法決定引用值是否指向同一對(duì)象equals()在類中被覆蓋,為的是當(dāng)兩個(gè)分離的對(duì)象的內(nèi)容和類型相配的話,返回真值。
第十七,給我一個(gè)你最常見到的runtime exception。
參考如下:
ArithmeticException,ArrayStoreException,BufferOverflowException,BufferUnderflowException,CannotRedoException,CannotUndoException,ClassCastException,CMMException,ConcurrentModificationException,DOMException,EmptyStackException,IllegalArgumentException,IllegalMonitorStateException,IllegalPathStateException,IllegalStateException,ImagingOpException,IndexOutOfBoundsException,MissingResourceException,NegativeArraySizeException,NoSuchElementException,NullPointerException,ProfileDataException,ProviderException,RasterFormatException,SecurityException,SystemException,UndeclaredThrowableException,UnmodifiableSetException,UnsupportedOperationException
第十八,error和exception有什么區(qū)別?
error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。
第十九,List, Set, Map是否繼承自Collection接口?
List,Set是
Map不是
第二十,abstract class和interface有什么區(qū)別?
聲明方法的存在而不去實(shí)現(xiàn)它的類被叫做抽象類(abstract class),它用于要?jiǎng)?chuàng)建一個(gè)體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實(shí)現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實(shí)例。然而可以創(chuàng)建一個(gè)變量,其類型是一個(gè)抽象類,并讓它指向具體子類的一個(gè)實(shí)例。不能有抽象構(gòu)造函數(shù)或抽象靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽象方法提供實(shí)現(xiàn),否則它們也是抽象類為。取而代之,在子類中實(shí)現(xiàn)該方法。知道其行為的其它類可以在類中實(shí)現(xiàn)這些方法。
接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實(shí)現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個(gè) 有程序體。接口只可以定義static final成員變量。接口的實(shí)現(xiàn)與子類相似,除了該實(shí)現(xiàn)類不能從接口定義中繼承行為。當(dāng)類實(shí)現(xiàn)特殊接口時(shí),它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實(shí)現(xiàn)了該接口的類的任何對(duì)象上調(diào)用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動(dòng)態(tài)聯(lián)編將生效。引用可以轉(zhuǎn)換到接口類型或從接口類型轉(zhuǎn)換,instanceof 運(yùn)算符可以用來決定某對(duì)象的類是否實(shí)現(xiàn)了接口。
第二十一,abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?
都不能
第二十二,接口是否可繼承接口? 抽象類是否可實(shí)現(xiàn)(implements)接口? 抽象類是否可繼承實(shí)體類(concrete class)?
接口可以繼承接口。抽象類可以實(shí)現(xiàn)(implements)接口,抽象類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)。
第二十三,啟動(dòng)一個(gè)線程是用run()還是start()?
啟動(dòng)一個(gè)線程是調(diào)用start()方法,使線程所代表的虛擬處理機(jī)處于可運(yùn)行狀態(tài),這意味著它可以由JVM調(diào)度并執(zhí)行。這并不意味著線程就會(huì)立即運(yùn)行。run()方法可以產(chǎn)生必須退出的標(biāo)志來停止一個(gè)線程。
第二十四,構(gòu)造器Constructor是否可被override?
構(gòu)造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。
第二十五,是否可以繼承String類?
String類是final類故不可以繼承。
第二十六,當(dāng)一個(gè)線程進(jìn)入一個(gè)對(duì)象的一個(gè)synchronized方法后,其它線程是否可進(jìn)入此對(duì)象的其它方法?
不能,一個(gè)對(duì)象的一個(gè)synchronized方法只能由一個(gè)線程訪問。
第二十七,try {}里有一個(gè)return語句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?
會(huì)執(zhí)行,在return前執(zhí)行。
第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?
有C背景的程序員特別喜歡問這種問題。< < 3
第二十九,兩個(gè)對(duì)象值相同(x.equals(y)== true),但卻可有不同的hash code,這句話對(duì)不對(duì)?
不對(duì),有相同的hash code。
第三十,當(dāng)一個(gè)對(duì)象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,此方法可改變這個(gè)對(duì)象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞?
是值傳遞。Java 編程語言只由值傳遞參數(shù)。當(dāng)一個(gè)對(duì)象實(shí)例作為一個(gè)參數(shù)被傳遞到方法中時(shí),參數(shù)的值就是對(duì)該對(duì)象的引用。對(duì)象的內(nèi)容可以在被調(diào)用的方法中改變,但對(duì)象的引用是永遠(yuǎn)不會(huì)改變的。
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳遞給 switch 和 case 語句的參數(shù)應(yīng)該是 int、short、char 或者 byte。long,string 都不能作用于swtich。
第三十二,編程題: 寫一個(gè)Singleton出來。
Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類Class只有一個(gè)實(shí)例存在。
一般Singleton模式通常有幾種種形式:
第一種形式: 定義一個(gè)類,它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類變量,在類初始化時(shí)實(shí)例話,通過一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。
public class Singleton {
private Singleton(){}
//在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?
//注意這是private 只供內(nèi)部調(diào)用
private static Singleton instance = new Singleton();
//這里提供了一個(gè)供外部訪問本class的靜態(tài)方法,可以直接訪問
public static Singleton getInstance(){
return instance;
} }
第二種形式:
public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance(){
//這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對(duì)象,只是第一次
//使用時(shí)生成實(shí)例,提高了效率!
if(instance==null)
instance=new Singleton();
return instance;} }
其他形式:
定義一個(gè)類,它的構(gòu)造函數(shù)為private的,所有方法為static的。
一般認(rèn)為第一種形式要更加安全些
其中也存在一些問題,下面補(bǔ)充一下.希望大家繼續(xù)補(bǔ)充
1.最好介紹一下final修飾變量的情形(分開說明基本類型變量和引用類型變量)。
2.不知道如何描述比較好,匿名內(nèi)部類本身是一個(gè)實(shí)現(xiàn)了特定接口或繼承了其他類的類。
3.非靜態(tài)類不能有static的方法。參考一下java collections framework的代碼,還能說出很多東西來。
4.&既是位運(yùn)算符,也是邏輯操作符。
&和&&都是邏輯運(yùn)算符,它們的區(qū)別是,&&進(jìn)行短路計(jì)算。
6.可以補(bǔ)充一下,參考文檔。
11.說一下具體的原因可能更好。
13.java有g(shù)oto這個(gè)keyword,不過還沒有使用。
15.overload和多態(tài)沒有任何關(guān)系。多態(tài)是面向?qū)ο蟮幕咎卣鳎呛屠^承、overriding相關(guān)的。原來以為把overload當(dāng)作多態(tài)的一種是從C++來的,后來翻了基本c++的經(jīng)典的書,也強(qiáng)調(diào)多態(tài)只是和繼承,虛函數(shù),overriding相關(guān),所以不知道這個(gè)錯(cuò)誤思想從哪來的了.16.public interface Set
看文檔就是了.22.“抽象類是否可繼承實(shí)體類,但前提是實(shí)體類必須有明確的構(gòu)造函數(shù)。”什么意思?誰規(guī)定的?
27.這個(gè)比較復(fù)雜,例如
public class Main {
public static void main(String[] args){
System.out.println(test());}
public static boolean test(){
boolean b = false;
try {
return b = 4 > 3;
} finally {
System.out.println(b);
//return false;} } }
這個(gè)例子中可以看出,return后面的表達(dá)式已經(jīng)計(jì)算了,感覺return語句這里被掛起了,如果finally中沒有return,這個(gè)return就返回.如果finally也有return,那么就是finally中的return返回了.29.碰上不守規(guī)矩的程序員誰也沒辦法.31.還有枚舉呢
32.注釋有問題.