版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
從享受生活的角度上來說:"程序員并不是一種最好的職業(yè),我認(rèn)為兩種人可以做程序
員,第一,你不做程序員,你就沒有什么工作可做,或者說是即使有可以做的工作但是你非
常不愿意去做;第二,你非常癡迷和愛好程序,并且在這方面有一些天賦和優(yōu)勢。程序員的
結(jié)局也是有兩種:第一,默默退休,第二以程序員為起點或跳板,注意積累,跟對了好的老
板或團(tuán)隊,找到和很好的搭檔自己創(chuàng)業(yè),成為IT金領(lǐng)和籥
人們在時間面前是平等的,吾生也有涯,所以,你的經(jīng)驗更豐富點,那不算什么,經(jīng)驗
是用時間積累的,你一生只有那么多時間,你能積累多少經(jīng)驗?zāi)??最重要的是你的學(xué)習(xí)能力
和學(xué)習(xí)方法,這個發(fā)揮的能量可以有很大差異,要提高學(xué)習(xí)能力和學(xué)習(xí)方法首先要學(xué)會思考
和總結(jié),要學(xué)會掌握事物的根本性的東西,而不是一些表面的細(xì)節(jié)。學(xué)習(xí)方法和學(xué)習(xí)能力對
于IT工作者來說尤為重要,因為IT行業(yè)技術(shù)更新太快,并且細(xì)節(jié)太多,同一個技術(shù)的細(xì)節(jié)
變來變?nèi)ヒ彩浅S械氖虑椋?,IT技術(shù)學(xué)習(xí)者絕不能照著書籍和老師的講解死記硬背和
生搬硬套。搞n"工作很累人,如果學(xué)習(xí)方法不對、學(xué)習(xí)能力不強(qiáng),那就更累了,不過,這
怨不得別人,你的學(xué)習(xí)方法和學(xué)習(xí)能力只適合做刷盤子的工作,卻非要跑到程序員圈子里來
混,那誰能有辦法拯救你!
在沒有人指引的情況下,只能是自己一個知識點、一個知識點地漫無目的學(xué)習(xí),等到積
累了足夠的知識量后,才有能力開始思考和琢磨原理方面的問題,這個學(xué)習(xí)過程很漫長。如
果能在好老師的指引下,老師會啟發(fā)你先思考原理問題,然后再去學(xué)習(xí)一個具體的知識點,
讓你能夠舉一反三、觸類旁通,這樣的學(xué)習(xí)效率就會更高。
多學(xué)了幾個知識,并不能說明你就很厲害了,只能說是你比別人投入了更多的時間和精
力而已,別人想做也能做到!不是你學(xué)了多少知識就算厲害了,關(guān)鍵是要用好學(xué)到的知識,
要讓學(xué)到的知識發(fā)揮出最大的社會價值和經(jīng)濟(jì)價值,這才是最厲害的。
另外,一個人的未來和造化,會深受環(huán)境的影響,所謂孟母三遷,近朱者赤、近墨者黑
的大大道理,這些典故大家不一定能深刻領(lǐng)悟和感受,我們就不多說了。就拿現(xiàn)代比較接近
我們生活的事例來說,如果你周圍的朋友全是以擦皮鞋為生、每月辛辛苦苦下來就掙1500
元,那么估計你的職業(yè)也是跟著擦皮鞋了,即使你再聰明和再勤奮,頂多每月比你那幫朋友
多掙300元,合下來也就區(qū)區(qū)1800元/月。前幾年只要抓住了大勢,沒錢全部找銀行貸款
了在北京買房、到山西開煤礦,是頭豬也能每年大把大把地?fù)棋X,如果你周圍的朋友全是投
機(jī)倒把的買房和開煤礦者,你的職業(yè)自然也是與他們干同樣的事情,即使你再差,每年也能
掙到百來萬不成問題,這就是環(huán)境的重要性。聰明的你因為沒有機(jī)會置身于炒房團(tuán)中,比那
些有機(jī)會接觸炒房者的豬掙得就要少、就要累。到我們的環(huán)境中來,你就很有機(jī)會拿到高薪
了,你可以不參加我們的培訓(xùn),但只要想辦法與我們的學(xué)員們住在一起,成功的機(jī)會就大多
了。
自從我們開設(shè)3C的課程后,許多學(xué)員都找到了月薪在7k或更高的3g開發(fā)工作,這
是他們的能力還完全不能與之相稱的一份好工作,這些學(xué)員眼看到嘴的肥肉又舍不得放棄,
最后就害苦我們這些老師了,學(xué)員紛紛把他們面試和工作中的要解決的問題帶回來讓我們老
師幫助做,有些問題雖然老師能做,但也是要花費(fèi)很大的時間和精力才能做的,這相當(dāng)于學(xué)
員把自己的工作交給我們老師替他去干了,可不是一句話兩句話就解決的問題。哀哉!我們
老師自己還有很繁重的備課和教學(xué)任務(wù),我們的工作請誰來幫助做呢?同學(xué)們似乎沒有替我
們想過這個問題。
一個兩個學(xué)員偶爾回來這么干還可以,但架不住一批批的學(xué)員都來這么干,加上有的學(xué)
生還不太會說話,讓人很無奈:
"很簡單的,頂多占用你一個小時就搞定了r-,這么簡單,你為何自己不干???
"今天晚上你必須做出來,明天就要交上去了",哎,我再熬夜命都要丟了,老婆就要
來砸電腦了,你叫我怎么辦???
"你沒時間干,那你吩咐其他老師干,也可以啊r,當(dāng)老師都是我的奴隸,我隨時隨地
叫他們干啥,他們就干啥嗎?老師能把教學(xué)做好,就很給我面子了。
現(xiàn)在這些公司怎么都越來越狡猾了,他們把日后工作中要解決的問題、并且是他們自己
都很難解決的問題拿出來讓面試求職者去搞,不管面試求職者的水平怎樣,他們都說誰能搞
定,誰就來上班,我們學(xué)生很高興,不管自己水平是否適合做這份工作,反正有我們的老師
可以依靠,拿回來就讓我們做,還說"做好了就有高薪工作,這關(guān)于我一輩子的幸福,老師
你自己看這個忙幫不幫吧?",軟件公司這招夠狠!我們這批老師成了這些公司免費(fèi)使用的
超級勞工。如果奧巴馬說你能把伊拉克擺平,我就讓你當(dāng)伊拉克總統(tǒng),這個奧巴馬都擺不平
的事情,但因為做完了就可以當(dāng)伊拉克總統(tǒng),我們學(xué)生也可能拿回來讓我們幫助做,讓我們
幫他擺平伊拉克,這對我們來說也是很難很難的事情啊。
1.學(xué)習(xí)方向與面試簡歷的相關(guān)問題
1.如何過簡歷關(guān)?
我先講解幾個軟件求職相關(guān)的真實故事,以幫助大家了解大多數(shù)軟件開發(fā)企業(yè)是如何賽
選簡歷和錄用新員工的。
1.我們學(xué)員A是大四在讀的應(yīng)屆畢業(yè)生,他自信技術(shù)學(xué)得很不錯,實質(zhì)上確實也達(dá)到
用人單位的標(biāo)準(zhǔn),他不愿意編寫兩年工作經(jīng)驗的虛假簡歷,希望憑借自己的真實情況去面對
求職,投遞了很多份簡歷,都沒有回應(yīng);而他周圍的很多相似背景的學(xué)員因為使用了假簡歷,
都很快找到了薪水4.5k/月左右的工作,最后萬不得已,他修改了自己的簡歷,增加了一些
水分,以兩年工作經(jīng)驗的身份去投遞簡歷,結(jié)果就很快找到了滿意的工作。
2.一個穿著和氣質(zhì)給人的印象都很不錯的女生咨詢時,問:“如果在我們學(xué)完了,能找
到工作嗎?",我問了她一些基本情況后,得知她是鄭州航空工業(yè)管理學(xué)院本科畢業(yè),并且
畢業(yè)時間已經(jīng)有兩年,談話中感覺很有工作經(jīng)驗,英語也不錯,所以,我斬釘截鐵地告訴她:
"她學(xué)完后絕對能找到一份滿意的工作",并說出了一些原因:(1)她本身的談吐氣質(zhì)就決
定了她找工作沒問題,應(yīng)聘工作除了要求有那些必需的技能外,關(guān)鍵一點還要看這個人的性
格和素養(yǎng),按她的條件,如果她要找軟件開發(fā)方面的工作,只需要把技術(shù)補(bǔ)上就可以了,這
一點在我們學(xué)習(xí)是很容易補(bǔ)上的;(2)要想找到好工作,除了掌握必需的技術(shù)外,通常都
需要編寫兩年工作經(jīng)驗的簡歷,她的畢業(yè)是證確實兩年前的,編造兩年軟件開發(fā)的工作經(jīng)驗
更容易,至少不用專門去做假的畢業(yè)證了。她聽完后,很贊同我的觀念,說她現(xiàn)在就在一家
軟件公司做人力資源,負(fù)責(zé)挑選應(yīng)聘者的簡歷,按領(lǐng)導(dǎo)的吩咐:”凡是工作經(jīng)驗低于兩年的
簡歷直接刪除到垃圾桶",可見,如果你的簡歷首先到達(dá)了類似這個女生的人力資源之手,
即使你的技術(shù)再厲害,如果你的工作經(jīng)驗一欄上寫得低于了兩年,那簡歷就永無露臉之日了,
何談后來的筆試和面試呢?
3.與我們同一樓的一個軟件開發(fā)單位,因為項目經(jīng)理讀過我們老師們的書籍和看過我們
的視頻,所以他們公司想到了從我們學(xué)員中招聘開發(fā)人員,提出薪水在2800元左后,我們
公司老師對他們誰,2800元薪水,我們學(xué)員肯定看不上!他們公司說對于沒有實際經(jīng)驗的
新手開出2800元的薪水已經(jīng)很不錯了,我們老師說,我們學(xué)員通過簡歷包裝都能找到平均
4500元的工資,樓下公司說假簡歷他們一聊就能聊出來,沒工作經(jīng)驗的人是騙不住他們的,
我們的老師當(dāng)時就無語了,…,因為就在前幾天,我們就有一個學(xué)員成功潛伏進(jìn)了他們公司,
并且工資就是4500元,但我們老師不能當(dāng)他們的面來說這事,就讓他們一直蒙在鼓里還很
自信吧!我用一個大餅的故事來說明這個問題吧,假如市場上賣的大餅都是10元一個,我
也做了一個這樣的大餅,比同類大餅還要好吃一點,我也買10元一個,你肯定愿意買,但
是,一旦我告訴你,我這個大餅的原材料才5毛錢,你心里還會平衡嗎?只會罵我太黑,5
毛錢的成本居然賣出10元的暴利,你不會買我的大餅,因為這超出了你的心理承受,只要
我不告訴你這么個實際情況,你則能欣然接受。也就是說,給你講實話,你心里會難受,給
你說假話,你心里則舒坦,相比市場上的同類產(chǎn)品,我這假話也算不上欺騙,畢竟你花I0
元買人家的大餅,還不如買我這個大餅好吃!
4.前面談到簡歷上的工作經(jīng)驗很重要,可是大多數(shù)要找工作的同學(xué)往往是沒有工作經(jīng)驗
的,所以,只能在簡歷上加點水分。但是,只要你將簡歷上寫成了兩年以上的工作經(jīng)驗,是
不是一定就能得到筆試和面試的機(jī)會呢?寫兩年工作經(jīng)驗只是有效簡歷的開始,離簡歷被用
人單位相中還有一段差距。一個好的畢業(yè)學(xué)校、優(yōu)秀的英語水平、中共黨員的政治面貌、某
省或直轄市的優(yōu)秀畢業(yè)生、奧林匹克競賽獲幾等獎等榮耀都會給用人單位一個很好的印象,
如果你有這些榮耀,一定要在簡歷的基本信息部分寫清楚。但是,很多人是沒有這些榮耀的,
那么只能平平淡淡列出自己的一些基本信息,這也沒有很大的關(guān)系,頂多就是自己的簡歷不
能脫穎而出,但是,對于軟件工程師崗位來說,學(xué)歷一欄怎么著也不能寫為高中,起碼也要
寫個大?;蛞陨?,畢業(yè)院校編個二線城市的不知名的小學(xué)院,如果你不愿意去做假證,等到
別人面試你時,再說"閑棄以前上的學(xué)校不好,因為對編程太感興趣,就輟學(xué)了r
2.為什么說不需要做出完整的項目嗎?
1.眾所周知,在實際的軟件項目中,都是很多人一塊共同做一個項目,每個人只是做項
目中的一部分內(nèi)容,甚至是只做了項目中的一個模塊,項目越大,越是如此!隨便拿出一個
中等大小的項目,也需要好多個熟練的開發(fā)人員開發(fā)好多個月才能勉強(qiáng)做得差不多,培訓(xùn)期
間沒有這么多時間,并且你還要先學(xué)會了很多技術(shù)后才能開始做項目。
2.一個項目中的很多東西都是重復(fù)性的工作量的累積,技術(shù)方面都大同小異。做一個
項目就好比蓋一座樓房,只要告訴你整個樓房的整體結(jié)構(gòu),然后帶著你蓋上一間兩間房子,
其他剩下的幾百間房子,老師想繼續(xù)蓋給你看,或者讓你自己蓋剩下的房間,你肯定也不愿
意吧。以后有的是練手的機(jī)會,拿著人家發(fā)給你的工資,你再去做這些重復(fù)性的工作也不遲,
豈不是更好!
3.業(yè)務(wù)重要?還是編碼實戰(zhàn)更重要?
1.對軟件企業(yè)來說,兩者都很重要,有的項目是業(yè)務(wù)為重心,有的則是以技術(shù)作為核心;
以業(yè)務(wù)為重心的項目大都是企業(yè)信息化建設(shè)方面的項目,與做鞋差不多,沒有多大技術(shù)含量
和壁壘,只有積累了一定的經(jīng)驗,誰都可以做,利潤很薄,例如大多數(shù)管理系統(tǒng),靠的是人
海戰(zhàn)術(shù)和時間糾纏,做這種項目的程序員工作都很辛苦,經(jīng)常要加班加點。而以技術(shù)為核心
的項目則很有技術(shù)壁壘,不是誰都能做的,利潤率很高,例如,360殺毒軟件、baidu,qq,
迅雷下載,大型bbs項目和淘寶這樣的電子商務(wù)網(wǎng)站。
2.對程序員來說,編碼實戰(zhàn)更重要,業(yè)務(wù)則不算什么!程序員和軟件公司的工作就是
要把用戶的需求和業(yè)務(wù)變成代碼,即為人作嫁,一開始,需求和業(yè)務(wù)都在用戶那里,用戶最
懂業(yè)務(wù),你不用了解業(yè)務(wù),你的任務(wù)就是了解用戶的業(yè)務(wù)后編寫代碼,在開始做項目前,用
戶會把業(yè)務(wù)告訴給你的。一個軟件公司從來都不是只做自己熟悉業(yè)務(wù)的項目,而是來了業(yè)務(wù)
不熟悉的項目機(jī)會,肯定也會沖上去做,軟件公司通常都是在做自己以前沒做過的項目,即
做以前不了解業(yè)務(wù)的項目,只有項目做完了才完全熟悉了業(yè)務(wù),這才叫做項目,否則就成了
賣產(chǎn)品了,所以,軟件工程里說的需求調(diào)研和理解業(yè)務(wù)的過程,也是在從側(cè)面說明,程序員
是在接到項目之后才開始了解其業(yè)務(wù)的,而在此之前,對業(yè)務(wù)可以是完全不懂的。
4.是培訓(xùn)內(nèi)容和信息量大好?還是培訓(xùn)內(nèi)容少而精的好?
答:雖然這兩種方式都能讓學(xué)有所獲和找到工作,并且,前者對于老師和學(xué)生要求都很
高,老師教得很辛苦,學(xué)生學(xué)得也很辛苦,學(xué)生甚至?xí)a(chǎn)生畏懼心理,即使水平已經(jīng)很高,
可能還是沒有信心;后者對于老師和學(xué)生的要求都不高,老師教得輕松,學(xué)生學(xué)得愉快,學(xué)
生很容易產(chǎn)生自信,成了井底之蛙,還自以為不得了。但是,內(nèi)容和信息量大培訓(xùn)課程體系,
對大多人來說是更收益的,因為,程序員做的工作總是在變化的,沒有一成不變的工作,為
了適應(yīng)這種變化,你的知識面必須很廣泛。如果你學(xué)的知識內(nèi)容很少,即使你把這些內(nèi)容練
的滾瓜爛熟了,除非你出去找的一份工作正好就是你以前練習(xí)的那些東西,這時候會讓人感
覺你比誰都厲害,但這種千載難逢的好事怎么就被你碰上了呢?軟件開發(fā)畢竟不同于刷盤
子,不是在重復(fù)干一件事情。軟件開發(fā)的工作總是要面臨不同的需求和問題,如果培訓(xùn)課程
的內(nèi)容和信息量很大,即使由于時間關(guān)系,你暫時沒有完全消化和熟練這么多內(nèi)容,但是,
你在工作中不管遇到什么新問題,都有那么一點點印象,知道大概的解決辦法和思路,你就
可以慢慢地通過查閱資料和最終解決這個問題,軟件開發(fā)的工作本來就是這么一種現(xiàn)狀,如
果你學(xué)的知識量很少,一旦遇到了新問題,你完全就沒有了思路,完全無從下手,這是何等
痛苦,只有灰溜溜走人的份了吧??傊R面越寬廣,了解的信息越多,解決問題的能力
就越強(qiáng),好比以前治療哮喘沒有很好的辦法,即使是一個哮喘病專家醫(yī)生,也需要讓病人吃
上半年的藥,還不能完全治愈,現(xiàn)在,如果有了一種新藥,病人只需要吃上一周,就能徹底
治愈,所謂好的哮喘病專家醫(yī)生,他要做的工作就是迅速知道有這么一種新藥問世了,否則,
他就成名符其實的庸醫(yī)了。建筑大師可能自己連一個廁所都蓋不出來,但是他能指導(dǎo)別人去
干,建筑大師一定要閱歷廣泛,他經(jīng)歷過的項目很多,但每個項目的很多細(xì)節(jié)不是他親力親
為。如果砌磚都是他親力親為,那他一輩子可能都是干砌磚工作了。
別的培訓(xùn)機(jī)構(gòu)培養(yǎng)的是技術(shù)單一的熟練技工,我們培養(yǎng)的是具有很強(qiáng)學(xué)習(xí)和解決問題能
力的技術(shù)高手和未來技術(shù)經(jīng)理。很多工廠說,清華畢業(yè)的學(xué)生剛進(jìn)工廠時的動手操作不如技
校畢業(yè)的學(xué)生熟練,但過一段時間后,清華學(xué)生則能解決工廠生成過程出現(xiàn)中的各種新問題
和弊端,甚至能提出創(chuàng)新和發(fā)明,后勁十足,因為清華培養(yǎng)的就不是一個單一工種的熟練工
人,而是知識全面和具有創(chuàng)新能力的高級工程師。別的機(jī)構(gòu)和我們培養(yǎng)出來的學(xué)生差別好比
如此。
5.IT行業(yè)中也會出現(xiàn)蟻族和民工嗎?
先看看IT蟻族和IT民工的悲慘命運(yùn)吧!
/aZ20100316/217473.html
/uZ20100317/16/2dba32e3-90f4-40b5-blfd-0bf370
9297c6.html?97395
搜素程序員的悲哀,還有更多辛酸的故事,但是,我并不同情他們,我只是說他們自
己無能!程序員這個職業(yè)能創(chuàng)造出許多年輕的富翁,不靠父母不靠天,還有那個職業(yè)比IT
行業(yè)更有機(jī)會和誘惑呢。不過,程序員毀壞身體是真,可是,不讓你做程序員,你去打游戲,
聊QQ不也照樣壞身體嗎?
SSH(struts,spring.hibernate)是當(dāng)前做管理信息系統(tǒng)最基本和最流行的通用技術(shù),
這幾個技術(shù)都出現(xiàn)7,8年了,應(yīng)該很普及了,確實沒什么新意?,F(xiàn)在培訓(xùn)機(jī)構(gòu)教的都是這
些玩意,用來混飯吃,還是管點用的。每個做增刪改查的人基本都會SSH,所以,SSH沒
什么了不起的,SSH這套東西對培訓(xùn)公司和個人發(fā)展來說,都不能成為核心競爭力,都難
以成大氣候。一些公司內(nèi)部所謂的核心技術(shù),就是那些非SSH的知識,我們教的不只是大
家都會的有點檔次的項目,確實不怎么用,但是大多數(shù)類的項目都是增刪
SSHOSSHOA
改查,雖然沒有技術(shù)含量,但是用工需求量大,這也就是能誕生出n?蟻族和IT民工的由來。
但是,java不只是有SSH這套技術(shù),如果你不想成為11■蟻族,如果你不想?yún)挓┸浖_
發(fā),那就不能只學(xué)SSH,這個沒有太多技術(shù)含量的單一熟練工種。
2.筆試答題技巧與若干問題
說明,為了節(jié)省大家的時間和提高學(xué)習(xí)效率,一些過時知識點和被筆試概率極低的題目
不再被收錄和分析。
回答問題的思路:先正面敘述一些基本的核心知識,然后描述一些特殊的東西,最后再
來一些錦上添花的東西。要注意有些不是錦上添花,而是畫蛇添足的東西,不要隨便寫上。
把答題像寫書一樣寫。我要回答一個新技術(shù)的問題大概思路和步驟是:我們想干什么,怎么
干,干的過程中遇到了什么問題,現(xiàn)在用什么方式來解決。其實我們講課也是這樣一個思路。
例如,講ajax時,我們希望不改變原來的整個網(wǎng)頁,而只是改變網(wǎng)頁中的局部內(nèi)容,
例如,用戶名校驗,級聯(lián)下拉列表,下拉樹狀菜單。用傳統(tǒng)方式,就是瀏覽器自己直接向服
務(wù)器發(fā)請求,服務(wù)器返回新頁面會蓋掉老頁面,這樣就不流暢了。
對本面試寶典中的題目有信心嗎?本來有信心的,結(jié)果聽你講完后,就沒信心了!我非
常理解。因為他覺得我的太深,他想記住我的些東西,可是記不住,所以沒信心了。我又問:
聽履了嗎?他說聽童了。你到現(xiàn)在只要把你的理解盡量清晰地、有條理地表達(dá)出來,就很棒
了。
這套面試題主要目的是幫助那些還沒有java軟件開發(fā)實際工作經(jīng)驗,而正在努力尋找
java軟件開發(fā)工作的朋友在筆試時更好地贏得筆試和面試。由于這套面試題涉及的范圍很
泛,很廣,很雜,大家不可能一天兩天就看完和學(xué)完這套面試寶典,即使你已經(jīng)學(xué)過了有關(guān)
的技術(shù),那么至少也需要一個月的時間才能消化和掌握這套面試寶典,所以,大家應(yīng)該早作
準(zhǔn)備,從拿到這套面試寶典之日起,就要堅持在每天閑暇之余學(xué)習(xí)其中幾道題目,日積月累,
等到出去面試時,一切都水到渠成,面試時就自然會游刃有余了。
答題時,先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)
答案的段落分別,層次分明,條理清晰都非常重要,從這些表面的東西也可以看出一個
人的習(xí)慣、辦事風(fēng)格、條理等。
要講你做出答案的思路過程或者說你記住答案的思想都寫下來。把答題想著是辯論賽。
答題就是給別人講道理、擺事實。答題不局限于什么格式和形式,就是要將自己的學(xué)識展現(xiàn)
出來!
別因為人家題目本來就模棱兩可,你就心里膽怯和沒底氣了,不敢回答了。你要大膽地
指出對方題目很模糊和你的觀點,不要把面試官想得有多高,其實他和你就是差不多的,你
想想,如果他把你招進(jìn)去了,你們以后就是同事了,可不是差不多的嗎?
關(guān)于就業(yè)薪水,如果你是應(yīng)屆生,那不能要高工資,好比大餅的故事,沒有文憑還想拿
高工資,就去中關(guān)村缺什么補(bǔ)什么吧!少數(shù)人基礎(chǔ)確實很好,在校期間確實又做過一些項目,
那仍然是可以要到相對高的工資的。
公司招聘程序員更看重的要用到的編碼技術(shù)、而不是那些業(yè)務(wù)不太相關(guān)的所謂項目經(jīng)
歷:
1.公司想招什么樣的人2.公司面試會問什么,.3.簡歷怎么寫4怎樣達(dá)到簡歷上的標(biāo)準(zhǔn)
(培訓(xùn)中心教項目的目的)
對于一些公司接到了一些項目,想招聘一些初中級的程序員過來幫助寫代碼,完成這個
項目,你更看重的是他的專業(yè)技術(shù)功底,還是以前做過幾個項目的經(jīng)歷呢?我們先排除掉那
些編碼技術(shù)功底好,又正好做過相似項目的情況,實際上,這種魚和熊掌兼得的情況并不常
見。其實公司很清楚,只要招聘進(jìn)來的人技術(shù)真的很明白,那他什么項目都可以做出來,公
司招人不是讓你去重復(fù)做你以前的項目,而是做一個新項目,業(yè)務(wù)方面,你只要進(jìn)了項目團(tuán)
隊,自然就能掌握。所以,大多數(shù)招聘單位在招聘那些編碼級別的程序員時也沒指望能招聘
到做過類似項目的人,也不會刻意去找做過類似項目的人,用人單位也不是想把你招進(jìn),然
后把你以前做過的項目重做一遍,所以,用人單位更看重招進(jìn)來的人對要用到的編碼技術(shù)的
功底到底怎樣,技術(shù)扎實不扎實,項目則只要跟著開發(fā)團(tuán)隊走,自然就沒問題。除非是一些
非常專業(yè)的行業(yè),要招聘特別高級的開發(fā)人員和系統(tǒng)分析師,招聘單位才特別注重他的項目
經(jīng)驗和行業(yè)經(jīng)驗,要去找到行業(yè)高手,公司才關(guān)心項目和與你聊項目的細(xì)節(jié),這樣的人通常
都不是通過常規(guī)招聘渠道去招聘進(jìn)來的,而是通過各種手段挖過來的,這情況不再我今天要
討論的范圍中。
技術(shù)學(xué)得明白不明白,人家?guī)讉€問題就把你的深淺問出來了只要問一些具體的技術(shù)點,
就很容易看出你是真懂還是假懂,很容看出你的技術(shù)深度和實力,所以,技術(shù)是來不得半點
虛假的,必須扎扎實實。
由于項目的種類繁多,涉及到現(xiàn)實生活中的各行各業(yè),什么五花八門的業(yè)務(wù)都有,例如,
酒店房間預(yù)定管理,公司車輛調(diào)度管理,學(xué)校課程教室管理,超市進(jìn)銷存管理,知識內(nèi)容管
理,等等……成千上萬等等,但是,不管是什么項目,采用的無非都是我們學(xué)習(xí)的那些目前
流行和常用的技術(shù)。技術(shù)好、經(jīng)驗豐富,則項目做出來的效率高些,程序更穩(wěn)定和更容易維
護(hù)些,?技術(shù)差點,碰碰磕磕最后也能把項目做出來,無非是做的周期長點、返工的次數(shù)多點,
程序代碼寫得差些,用的技術(shù)笨拙點。如果一個人不是完完全全做過某個項目,他是不太關(guān)
心該項目的業(yè)務(wù)的,對其中的一些具體細(xì)節(jié)更是一竅不知,(如果我招你來做圖書管理,你
項目經(jīng)歷說你做過汽車調(diào)度,那我能問你汽車調(diào)度具體怎么回事嗎?不會,所以,你很容易
蒙混過去的)而一個程序員的整個職業(yè)生涯中能實實在在和完完整整做出來的項目沒幾個,
更別說在多個不同行業(yè)的項目了,有的程序員更是一輩子都只是在做某一個行業(yè)的項目,結(jié)
果他就成了這個行業(yè)的專家(專門干一件事的家伙)。所以,技術(shù)面試官通常沒正好親身經(jīng)歷
過你簡歷寫的那些項目,他不可能去問你寫的那些項目的具體細(xì)節(jié),而是只能泛泛地問你這
個項目是多少人做的,做了多長時間,開發(fā)的過程,你在做項目的過程中有什么心得和收獲,
用的什么技術(shù)等面上的問題,所以,簡歷上的項目經(jīng)歷可以含有很多水分,很容易作假,技
術(shù)面試官也無法在項目上甄別你的真?zhèn)巍?/p>
簡歷該怎么寫:精通那些技術(shù),有一些什么項目經(jīng)歷
教項目是為了鞏固和靈活整合運(yùn)用技術(shù),增強(qiáng)學(xué)習(xí)的趣味性,熟悉做項目的流程,或得
一些專業(yè)課程中無法獲得的特有項目經(jīng)驗,增強(qiáng)自己面試的信心。講的項目應(yīng)該真實可靠才
有價值,否則,表面上是項目,實際上還是知識點的整合,對鞏固技術(shù)點和增強(qiáng)學(xué)習(xí)的趣味
性,但無法獲得實際的項目經(jīng)驗。(項目主要是增加你經(jīng)驗的可信度,獲得更多面試機(jī)會,
真正能不能找到工作,找到好工作,主要看你鍵盤上的功夫了),好的面試官幾下就能面出
你是否真有工作經(jīng)驗,他們問技術(shù)以外的公司的人和事,并且問開始、過程、結(jié)果,看你怎
么編。
建議大家盡量開自己的blog,堅持每天寫技術(shù)blog.在簡歷上寫上自己的blog地址,
可以多轉(zhuǎn)載一些技術(shù)文章。
3.筆試題之Java基礎(chǔ)部分
基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的
語法,集合的語法,io的語法,虛擬機(jī)方面的語法,其他,有些題來自網(wǎng)上搜集整理,有些題來自我們學(xué)
員面試后的反饋,說真的,少數(shù)一些網(wǎng)上的面試題,我真懷疑其是否還有存在價值!
1、一個“Java”源文件中是否可以包括多個類(不是內(nèi)部
類)?有什么限制?
可以有多個類,但只能有一個public的類,并且public的類名必須與文件名相一致.
2、Java有沒有g(shù)oto?
java中的保留字,現(xiàn)在沒有在java中使用。
3、說說&和&&的區(qū)別。
&和&&都可以用作邏輯與的運(yùn)算符,表示邏輯與(and),當(dāng)運(yùn)算符兩邊的表達(dá)式的結(jié)果都為true時,
整個運(yùn)算結(jié)果才為true,否則,只要有一方為false,則結(jié)果為false.
&&還具有短路的功能,即如果第一個表達(dá)式為false,則不再計算第二個表達(dá)式,例如,對于if(str!=
null&&!str.equalsC'))表達(dá)式,當(dāng)str為null時,后面的表達(dá)式不會執(zhí)行,所以不會出現(xiàn)
NullPointerException如果將&&改為&,則會拋出NullPointerException異常。lf(x==33&++y>0)y
會增長,lf(x==33&&++y>0)不會增長
&還可以用作位運(yùn)算符,當(dāng)&操作符兩邊的表達(dá)式不是boolean類型時,&表示按位與操作,我們通常
使用OxOf來與一個整數(shù)進(jìn)行&運(yùn)算,來獲取該整數(shù)的最低4個bit位,例如,0x31&OxOf的結(jié)果為0x01。
備注:這道題先說兩者的共同點,再說出&&和&的特殊之處,并列舉一些經(jīng)典的例子來表明自己理解
透徹深入、實際經(jīng)驗豐富。
4、在JAVA中如何跳出當(dāng)前的多重嵌套循環(huán)?
在java中,要想跳出多重循環(huán),可以在外面的循環(huán)語句前定義一個標(biāo)號,然后在里層循環(huán)體的代碼中
使用帶有標(biāo)號的break語句,即可跳出外層循環(huán)。例如,
ok:
for(inti=0;i<10;i++)
(
for(intj=O;j<l0;j++)
{
System.out.printlnCi=M+i+"J="+j);
if(j==5)breakok;
)
}
另外,我個人通常并不使用標(biāo)號這種方式,而是讓外層的循環(huán)條件表達(dá)式的結(jié)果可以受到里層循環(huán)體
代碼的控制,例如,要在二維數(shù)組中查找到某個數(shù)字。
intarr口口={{1,2,3},{4,5,6,7},{9}};
booleanfound=false;
for(inti=O;i<arr.length&&!found;i++)
|
for(intj=O;j<arr[i].length;j++)
(
System.out.println("i="+i+",j="+j);
if(arr[i][j]==5)
{
found=true;
break;
)
)
}
5、switch語句能否作用在byte上,能否作用在long上,
能否作用在String±?
在switch(exprl)中,exprl只能是一個整數(shù)表達(dá)式或者枚舉常量(更大字體),整數(shù)表達(dá)式可以
是int基本類型或Integer包裝類型,由于,byte,short,char都可以隱含轉(zhuǎn)換為int,所以,這些類型以
及這些類型的包裝類型也是可以的.顯然,long和String類型都不符合switch的語法規(guī)定,并且不能被
隱式轉(zhuǎn)換成int類型,所以,它們不能作用于swtich語句中。
6、shortsi=1;si=si+1;有什么錯?shortsi=1;si
+=1;有什么錯?
對于shortsi=1;si=si+1;由于si+1運(yùn)算時會自動提升表達(dá)式的類型,所以結(jié)果是int型,
再賦值給short類型si時,編譯器將報告需要強(qiáng)制轉(zhuǎn)換類型的錯誤。
對于shortsi=1;si+=1;由于+=是java語言規(guī)定的運(yùn)算符Java編譯器會對它進(jìn)行特殊處理,
因此可以正確編譯。
7、char型變量中能不能存貯一個中文漢字?為什么?
char型變量是用來存儲Unicode編碼的字符的,unicode編碼字符集中包含了漢字,所以,char型
變量中當(dāng)然可以存儲漢字啦。不過,如果某個特殊的漢字沒有被包含在unicode編碼字符集中,那么,這
個char型變量中就不能存儲這個特殊漢字。補(bǔ)充說明:unicode編碼占用兩個字節(jié),所以,char類型的
變量也是占用兩個字節(jié)。
備注:后面一部分回答雖然不是在正面回答題目,但是,為了展現(xiàn)自己的學(xué)識和表現(xiàn)自己對問題理解
的透徹深入,可以回答一些相關(guān)的知識,做到知無不言,言無不盡。
8、用最有效率的方法算出2乘以8等於幾?
2<<3,
因為將一個數(shù)左移n位,就相當(dāng)于乘以了2的n次方,那么,一個數(shù)乘以8只要將其左移3位即可,
而位運(yùn)算cpu直接支持的,效率最高,所以,2乘以8等於幾的最效率的方法是2<<3。
9、請設(shè)計一個一百億的計算器
首先要明白這道題目的考查點是什么,一是大家首先要對計算機(jī)原理的底層細(xì)節(jié)要清楚、要知道加減
法的位運(yùn)算原理和知道計算機(jī)中的算術(shù)運(yùn)算會發(fā)生越界的情況,二是要具備一定的面向?qū)ο蟮脑O(shè)計思想。
首先,計算機(jī)中用固定數(shù)量的幾個字節(jié)來存儲的數(shù)值,所以計算機(jī)中能夠表示的數(shù)值是有一定的范圍
的,為了便于講解和理解,我們先以byte類型的整數(shù)為例,它用1個字節(jié)進(jìn)行存儲,表示的最大數(shù)值范
圍為-128到+1270-1在內(nèi)存中對應(yīng)的二進(jìn)制數(shù)據(jù)為11111111,如果兩個-1相加,不考慮Java運(yùn)算
時的類型提升,運(yùn)算后會產(chǎn)生進(jìn)位,二進(jìn)制結(jié)果為1,11111110,由于進(jìn)位后超過了byte類型的存儲空
間,所以進(jìn)位部分被舍棄,即最終的結(jié)果為11111110,也就是-2,這正好利用溢位的方式實現(xiàn)了負(fù)數(shù)的
運(yùn)算。-128在內(nèi)存中對應(yīng)的二進(jìn)制數(shù)據(jù)為10000000,如果兩個-128相加,不考慮Java運(yùn)算時的類型
提升,運(yùn)算后會產(chǎn)生進(jìn)位,二進(jìn)制結(jié)果為1,00000000,由于進(jìn)位后超過了byte類型的存儲空間,所以
進(jìn)位部分被舍棄,即最終的結(jié)果為00000000,也就是0,這樣的結(jié)果顯然不是我們期望的,這說明計算
機(jī)中的算術(shù)運(yùn)算是會發(fā)生越界情況的,兩個數(shù)值的運(yùn)算結(jié)果不能超過計算機(jī)中的該類型的數(shù)值范圍.由于
Java中涉及表達(dá)式運(yùn)算時的類型自動提升,我們無法用byte類型來做演示這種問題和現(xiàn)象的實驗,大家
可以用下面一個使用整數(shù)做實驗的例子程序體驗一下:
inta=Integer.MAX_VALUE;
intb=Integer.MAX_VALUE;
intsum=a+b;
System.out.println("a="+a+",b="+b+,,,sum="+sum);
先不考慮long類型,由于int的正數(shù)范圍為2的31次方,表示的最大數(shù)值約等于
2*1000*1000*1000,也就是20億的大小,所以,要實現(xiàn)一個一百億的計算器,我們得自己設(shè)計一個類
可以用于表示很大的整數(shù),并且提供了與另外一個整數(shù)進(jìn)行加減乘除的功能,大概功能如下:
()這個類內(nèi)部有兩個成員變量,一個表示符號,另一個用字節(jié)數(shù)組表示數(shù)值的二進(jìn)制數(shù)
()有一個構(gòu)造方法,把一個包含有多位數(shù)值的字符串轉(zhuǎn)換到內(nèi)部的符號和字節(jié)數(shù)組中
()提供加減乘除的功能
publicclassBiginteger
intsign;
byte[]val;
publicBiginteger(Stringval)
sign=;
val=;
}
publicBigintegeradd(Biglntegerother)
|
}
publicBigintegersubtract(Biglntegerother)
(
}
publicBigintegermultiply(Biglntegerother)
{
}
publicBigintegerdivide(Biglntegerother)
(
)
)
備注:要想寫出這個類的完整代碼,是非常復(fù)雜的,如果有興趣的話,可以參看jdk中自帶的
java.math.Biginteger類的源碼。面試的人也知道誰都不可能在短時間內(nèi)寫出這個類的完整代碼的,他要
的是你是否有這方面的概念和意識,他最重要的還是考查你的能力,所以,你不要因為自己無法寫出完整
的最終結(jié)果就放棄答這道題,你要做的就是你比別人寫得多,證明你比別人強(qiáng),你有這方面的思想意識就
可以了,畢竟別人可能連題目的意思都看不懂,什么都沒寫,你要敢于答這道題,即使只答了一部分,那
也與那些什么都不懂的人區(qū)別出來,拉開了距離,算是矮子中的高個,機(jī)會當(dāng)然就屬于你了。另外,答案
中的框架代碼也很重要,體現(xiàn)了一些面向?qū)ο笤O(shè)計的功底,特別是其中的方法命名很專業(yè),用的英文單詞
很精準(zhǔn),這也是能力、經(jīng)驗、專業(yè)性、英語水平等多個方面的體現(xiàn),會給人留下很好的印象,在編程能力
和其他方面條件差不多的情況下,英語好除了可以使你獲得更多機(jī)會外,薪水可以高出一千元。
10、使用final關(guān)鍵字修飾一個變量時,是引用不能變,還
是引用的對象不能變?
使用final關(guān)鍵字修飾一個變量時,是指引用變量不能變,引用變量所指向的對象中的內(nèi)容還是可以改
變的。例如,對于如下語句:
finalStringBuffera=newStringBufferC'immutable");
執(zhí)行如下語句將報告編譯期錯誤:
a=newStringBufferC);
但是,執(zhí)行如下語句則可以通過編譯:
a.append("broken!");
有人在定義方法的參數(shù)時,可能想采用如下形式來阻止方法內(nèi)部修改傳進(jìn)來的參數(shù)對象:
publicvoidmethod(finalStringBufferparam)
}
實際上,這是辦不到的,在該方法內(nèi)部仍然可以增加如下代碼來修改參數(shù)對象:
param.append("a");
11、”=="和equals方法究竟有什么區(qū)別?
(單獨把一個東西說清楚,然后再說清楚另一個,這樣,它們的區(qū)別自然就出來了,混在一起說,則
很難說清楚)
==操作符專門用來匕修交兩個變量的值是否相等,也就是用于b匕較變量所對應(yīng)的內(nèi)存中所存儲的數(shù)值是
否相同,要匕徽兩個基本類型的數(shù)據(jù)或兩個引用變量是否相等,只能用==操作符。
如果一個變量指向的數(shù)據(jù)是對象類型的,那么,這時候涉及了兩塊內(nèi)存,對象本身占用一塊內(nèi)存(堆
內(nèi)存),變量也占用一塊內(nèi)存,例如Objetobj=newObject。;變量obj是一個內(nèi)存,newObject。是另
一個內(nèi)存,此時,變量obj所對應(yīng)的內(nèi)存中存儲的數(shù)值就是對象占用的那塊內(nèi)存的首地址。對于指向?qū)ο?/p>
類型的變量,如果要匕檄兩個變量是否指向同一個對象,即要看這兩個變量所對應(yīng)的內(nèi)存中的數(shù)值是否相
等,這時候就需要用==操作符進(jìn)行比較。
equals方法是用于匕檄兩個獨立對象的內(nèi)容是否相同,就好比去比較兩個人的長相是否相同,它匕徽
的兩個對象是獨立的。例如,對于下面的代碼:
Stringa=newStringC'foo");
Stringb=newString("foo");
兩條new語句創(chuàng)建了兩個對象,然后用a,b這兩個變量分別指向了其中一個對象,這是兩個不同的對
象,它們的首地址是不同的,即a和b中存儲的數(shù)值是不相同的,所以,表達(dá)式a==b將返回false,而
這兩個對象中的內(nèi)容是相同的,所以,表達(dá)式a.equals(b)將返回true.
在實際開發(fā)中,我們經(jīng)常要比較傳遞進(jìn)行來的字符串內(nèi)容是否等,例如,Stringinput
=..Jnput.equalsC'quiO,許多人稍不注意就使用==進(jìn)行比較了,這是錯誤的,隨便從網(wǎng)上找?guī)讉€項目
實戰(zhàn)的教學(xué)視頻看看,里面就有大量這樣的錯誤。記住,字符串的比較基本上都是使用equals方法。
如果一個類沒有自己定義equals方法,那么它將繼承Object類的equals方法,Object類的equals
方法的實現(xiàn)代碼如下:
booleanequals(Objecto){
returnthis==o;
}
這說明,如果一個類沒有自己定義equals方法,它默認(rèn)的equals方法(從Object類繼承的)就是
使用==操作符,也是在比較兩個變量指向的對象是否是同一對象,這時候使用equals和使用==會得到
同樣的結(jié)果,如果比較的是兩個獨立的對象則總返回false。如果你編寫的類希望能夠bH交該類創(chuàng)建的兩個
實例對象的內(nèi)容是否相同,那么你必須覆蓋equals方法,由你自己寫代碼來決定在什么情況即可認(rèn)為兩
個對象的內(nèi)容是相同的。
12、靜態(tài)變量和實例變量的區(qū)別?
在語法定義上的區(qū)別:靜態(tài)變量前要加static關(guān)鍵字,而實例變量前則不加。
在程序運(yùn)行時的區(qū)別:實例變量屬于某個對象的屬性,必須創(chuàng)建了實例對象,其中的實例變量才會被
分配空間,才能使用這個實例變量。靜態(tài)變量不屬于某個實例對象,而是屬于類,所以也稱為類變量,只
要程序加載了類的字節(jié)碼,不用創(chuàng)建任何實例對象,靜態(tài)變量就會被分配空間,靜態(tài)變量就可以被使用了。
總之,實例變量必須創(chuàng)建對象后才可以通過這個對象來使用,靜態(tài)變量則可以直接使用類名來引用。
例如,對于下面的程序,無論創(chuàng)建多少個實例對象,永遠(yuǎn)都只分配了一個staticVar變量,并且每創(chuàng)
建一個實例對象,這個staticVar就會加1;但是,每創(chuàng)建一個實例對象,就會分配一個instanceVar,即
可能分配多個instanceVar,并且每個instanceVar的值都只自加了1次。
publicclassVariantTest
(
publicstaticintstaticVar=0;
publicintinstanceVar=0;
publicVariantTestO
{
staticVar++;
instanceVar++;
System.out.println("staticVar="+staticVar+”,instanceVar="+instanceVar);
}
)
備注:這個解答除了說清楚兩者的區(qū)別外,最后還用一個具體的應(yīng)用例子來說明兩者的差異,體現(xiàn)了
自己有很好的解說問題和設(shè)計案例的能力,思維敏捷,超過一般程序員,有寫作能力!
13、是否可以從一個static方法內(nèi)部發(fā)出對非static方法
的調(diào)用?
不可以。因為非static方法是要與對象關(guān)聯(lián)在一起的,必須創(chuàng)建一個對象后,才可以在該對象上進(jìn)行
方法調(diào)用,而static方法調(diào)用時不需要創(chuàng)建對象,可以直接調(diào)用。也就是說,當(dāng)一個static方法被調(diào)用時,
可能還沒有創(chuàng)建任何實例對象,如果從一個static方法中發(fā)出對非static方法的調(diào)用,那個非static方法
是關(guān)聯(lián)到哪個對象上的呢?這個邏輯無法成立,所以,一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用。
14、Integer與int的區(qū)別
int是java提供的8種原始數(shù)據(jù)類型之一Java為每個原始類型提供了封裝類Integer是java為int
提供的封裝類。int的默認(rèn)值為0,而Integer的默認(rèn)值為null,即Integer可以區(qū)分出未賦值和值為0的
區(qū)別,int則無法表達(dá)出未賦值的情況,例如,要想表達(dá)出沒有參加考試和考試成績?yōu)?的區(qū)別,則只能
使用Integer.在JSP開發(fā)中,Integer的默認(rèn)為null,所以用el表達(dá)式在文本框中顯示時,值為空白字
符串,而int默認(rèn)的默認(rèn)值為0,所以用el表達(dá)式在文本框中顯示時,結(jié)果為0,所以,int不適合作為
web層的表單數(shù)據(jù)的類型。
在Hibernate中,如果將0ID定義為Integer類型,那么Hibernate就可以根據(jù)其值是否為null而
判斷一個對象是否是臨時的,如果將OID定義為了int類型,還需要在hbm映射文件中設(shè)置其
unsaved-value屬性為0?
另外,Integer提供了多個與整數(shù)相關(guān)的操作方法,例如,將一個字符串轉(zhuǎn)換成整數(shù),Integer中還定
義了表示整數(shù)的最大值和最小值的常量。
15、Math.round。1.5)等於多少?Math.round(-11.5)等
於多少?
Math類中提供了三個與取整有關(guān)的方法:ceil、floor,round,這些方法的作用與它們的英文名稱的
含義相對應(yīng),例如,ceil的英文意義是天花板,該方法就表示向上取整,所以,Math.ee*11.3)的結(jié)果為
12,1^由4口(-11.3)的結(jié)果是-11;floor的英文意義是地板,該方法就表示向下取整,所以,
Math.floor。1.6)的結(jié)果為11,Math.floor(-l1.6)的結(jié)果是-12;最難掌握的是round方法,它表示"四
舍五人"算法為Math.floor(x+0.5),即將原來的數(shù)字加上0.5后再向下取整所以,Math.round。1.5)
的結(jié)果為12,Math.round(-11.5)的結(jié)果為-11。
15、下面的代碼有什么不妥之處?
1.if(username.equals("zxx"){}
2.intX=1;
returnx==l?true:false;
lx請說出作用域public,private,protected,以及不寫
時的區(qū)別
這四個作用域的可見范圍如下表所示。
說明:如果在修飾的元素上面沒有寫任何訪問修飾符,則表示friendly。
作用域當(dāng)前類同一package子孫類其他package
publicVVVV
protectedVVVx
friendlyVVxx
privateVxxx
備注:只要記住了有4種訪問權(quán)限,4個訪問范圍,然后將全選和范圍在水平和垂直方向上分別按排
從小到大或從大到小的順序排列,就很容易畫出上面的圖了。
2、Overload和Override的區(qū)別。Overloaded的方法是
否可以改變返回值的類型?
Overload是重載的意思,Override是覆蓋的意思,也就是重寫。
重載Overload表示同一個類中可以有多個名稱相同的方法,但這些方法的參數(shù)列表各不相同(即參
數(shù)個數(shù)或類型不同入
重寫Override表示子類中的方法可以與父類中的某個方法的名稱和參數(shù)完全相同,通過子類創(chuàng)建的
實例對象調(diào)用這個方法時,將調(diào)用子類中的定義方法,這相當(dāng)于把父類中定義的那個完全相同的方法給覆
蓋了,這也是面向?qū)ο缶幊痰亩鄳B(tài)性的一種表現(xiàn)。子類覆蓋父類的方法時,只能比父類拋出更少的異常,
或者是拋出父類拋出的異常的子異常,因為子類可以解決父類的一些問題,不能比父類有更多的問題。子
類方法的訪問權(quán)限只能比父類的更大,不能更小。如果父類的方法是private類型,那么,子類則不存在
覆蓋的限制,相當(dāng)于子類中增加了一個全新的方法。
至于Overloaded的方法是否可以改變返回值的類型這個問題,要看你倒底想問什么呢?這個題目很
模糊。如果幾個Overloaded的方法的參數(shù)列表不一樣,它們的返回者類型當(dāng)然也可以不一樣。但我估計
你想問的問題是女口果兩個方法的參數(shù)列表完全一樣,是否可以讓它們的返回值不同來實現(xiàn)重載Overload。
這是不行的,我們可以用反證法來說明這個問題,因為我們有時候調(diào)用一個方法時也可以不定義返回結(jié)果
變量,即不要關(guān)心其返回結(jié)果,例如,我們調(diào)用map.remove(key)方法時,雖然remove方法有返回值,
但是我們通常都不會定義接收返回結(jié)果的變量,這時候假設(shè)該類中有兩個名稱和參數(shù)列表完全相同的方法,
僅僅是返回類型不同,java就無法確定編程者倒底是想調(diào)用哪個方法了,因為它無法通過返回結(jié)果類型來
判斷.
override可以翻譯為覆蓋,從字面就可以知道,它是覆蓋了一個方法并且對其重寫,以求
達(dá)到不同的作用。對我們來說最熟悉的覆蓋就是對接口方法的實現(xiàn),在接口中一般只是對方
法進(jìn)行了聲明,而我們在實現(xiàn)時,就需要實現(xiàn)接口聲明的所有方法。除了這個典型的用法以
外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點:
1、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配,才能達(dá)到覆蓋的效果;
2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;
3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類;
4、被覆蓋的方法不能為private,否則在其子類中只是新定義了一個方法,并沒有對其進(jìn)
行覆蓋。
overload對我們來說可能比較熟悉,可以翻譯為重載,它是指我們可以定義一些名稱相同
的方法,通過定義不同的輸入?yún)?shù)來區(qū)分這些方法,然后再調(diào)用時,VM就會根據(jù)不同的參
數(shù)樣式,來選擇合適的方法執(zhí)行。在使用重載要注意以下的幾點:
1、在使用重載時只能通過不同的參數(shù)樣式。例如,不同的參數(shù)類型,不同的參數(shù)個數(shù),不
同的參數(shù)順序(當(dāng)然,同一方法內(nèi)的幾個參數(shù)類型必須不一樣,例如可以是fun(int,float),
但是不能為fun());
2、不能通過訪問權(quán)限、返回類型、拋出的異常進(jìn)行重載;
3、方法的異常類型和數(shù)目不會對重載造成影響;
4、對于繼承來說,如果某一方法在父類中是訪問權(quán)限是priavte,那么就不能
在子類對其進(jìn)行重載,如果定義的話,也只是定義了一個新方法,而不會達(dá)到重
載的效果。
3、4月21號班同學(xué)貢獻(xiàn)的一些題?
朱wenchao,女:3500,21歲
搞了多個重載方法,參數(shù)分別是int,char,和double,然后將doublex=2,
傳遞進(jìn)去,會選擇哪個方法?
說說對javaee中的session的理解,你是怎么用session的?
陳yong,4000
一個房子里有椅子,椅子有腿和背,房子與椅子是什么關(guān)系,椅子與腿和背是什么關(guān)系?
如果房子有多個椅子,就是聚合關(guān)系,否則是一種關(guān)聯(lián)關(guān)系,當(dāng)然,聚合是一種特殊的關(guān)聯(lián)。
椅子與腿和背時組合關(guān)系。
說說hasa與isa的區(qū)別。
答:is-a表示的是屬于得關(guān)系。比如兔子屬于一種動物(繼承關(guān)系\
has-a表示組合,包含關(guān)系。比如兔子包含有腿,頭等組件;
工廠模式的類圖
4.5月15號班同學(xué)貢獻(xiàn)的一些題?
1.線程如何同步和通訊。同學(xué)回答說synchronized方法或代碼塊!面試官似乎不太滿意!
只有多個synchronized代碼塊使用的是同一個監(jiān)視器對象,這些synchronized代碼塊
之間才具有線程互斥的效果,假如a代碼塊用objl作為監(jiān)視器對象,假如b代碼塊用。切2
作為監(jiān)視器對象,那么,兩個并發(fā)的線程可以同時分別進(jìn)入這兩個代碼塊中?!@里還可
以分析一下同步的原理。
對于同步方法的分析,所用的同步監(jiān)視器對象是this
接著對于靜態(tài)同步方法的分析,所用的同步監(jiān)視器對象是該類的Class對象
接著對如何實現(xiàn)代碼塊與方法的同步進(jìn)行分析。
2.ClassLoader如何力口載class。
jvm里有多個類加載,每個類加載可以負(fù)責(zé)加載特定位置的類,例如,bootstrap類加
載負(fù)責(zé)加載jre/lib/rt.jar中的類,我們平時用的jdk中的類都位于rt.jar中。
extclassloader負(fù)責(zé)加載jar/lib/ext/*.jar中的類,appclassloader負(fù)責(zé)classpath指定
的目錄或jar中的類。除了bootstrap之外,其他的類加載器本身也都是java類,它們的
父類是
ClassLoadero
3.Servlet的生命周期
4.抽象類的作用
5.ArrayList如何實現(xiàn)插入的數(shù)據(jù)按自定義的方式有序存放
classMyBeanimplementsComparable(
publicintcompareTo(Objectobj){
if(!objinstanceofMyBean)
thrownewClassCastExceptionO〃具體異常的名稱,我要查jdk文檔。
MyBeanother=(MyBean)obj;
returnage>other.age?l:age==other.age?0:-l;
}
}
classMyTreeSet{
privateArrayListdatas=newArrayListO;
p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省黃石市2024年中考數(shù)學(xué)模擬考試試卷附答案
- 美容院顧客反饋收集與分析
- 科技園區(qū)企業(yè)創(chuàng)新能力歸類分析
- 高一化學(xué)二第一章第三節(jié)化學(xué)鍵練習(xí)
- 2024高中地理第3章區(qū)域自然資源綜合開發(fā)利用第1節(jié)第1課時資源開發(fā)條件能源基地建設(shè)學(xué)案新人教版必修3
- 2024高中物理第三章磁場課時25運(yùn)動電荷在磁場中受到的力訓(xùn)練含解析新人教版選修3-1
- 2024高中語文第四單元創(chuàng)造形象詩文有別方山子傳訓(xùn)練含解析新人教版選修中國古代詩歌散文欣賞
- 2024高考化學(xué)一輪復(fù)習(xí)專練52實驗綜合應(yīng)用一含解析新人教版
- 2024高考化學(xué)一輪復(fù)習(xí)第一部分考點38晶體結(jié)構(gòu)與性質(zhì)強(qiáng)化訓(xùn)練含解析
- 2024高考化學(xué)一輪復(fù)習(xí)課練29化學(xué)實驗常用儀器和基本操作含解析
- 信訪十種情形追責(zé)問責(zé)制度
- 大型儲罐施工工法倒裝法安裝
- 手機(jī)歸屬地表格
- 一年級上冊數(shù)學(xué)思維教材
- GB/T 24479-2023火災(zāi)情況下的電梯特性
- 鼻空腸管的護(hù)理
- ICH Q3D元素雜質(zhì)指導(dǎo)原則
- 中國重汽集團(tuán)服務(wù)手冊
- 象棋特色學(xué)校申請報告
- 五年級解方程計算題100道
- 漢語教學(xué) 《成功之路+進(jìn)步篇+2》第16課課件
評論
0/150
提交評論