第一篇:阿里面試經歷(java工程師)
阿里面試經歷
(Java工程師)
拿到阿里巴巴的offer,我自己都不敢相信,運氣占了很大一部分,謝謝帶給我好運的所有人。
談談整個應聘過程的心得吧:
國慶還沒過完,10月5號我就趕回學校了,因為我知道接下來時間緊迫,要抓緊時間投簡歷。根據各大公司的網申截止日期,10月6號我投了3份簡歷,分別是:中國電信合肥分公司、搜狐、阿里巴巴。10號晚阿里來科大做宣講會,我并沒有過去,聽說沒有網申的同學可以在現場領一個號碼參加第二天上午的筆試。我也收到了通知面試的郵件通知,阿里的筆試每個人都有機會參加,只要你愿意就可以參加。
筆試:我報的是java研發工程師,但是我之前沒有搞過java,只是了解一些java的基本語法。因此筆試我沒有自信,筆試前夜我還借了本 java書臨時抱了一下佛腳,好像沒什么用。第二天上午跟隨大家去筆試,到了發現人非常多,3個教室都坐得滿滿的,后來知道有700多人參加了筆試。試卷分為卷1java部分、卷2c++和搜索部分、卷3公共部分。卷1卷2選做一個(25道選擇題),卷3都要做(15道選擇題+2道主觀題),我選的是卷 1,感覺知識面很廣,題目我基本都不會,還好都是選擇題,不會就碰運氣。卷3感覺像是行測,有的題目很簡單有的比較難,后面還有兩個主觀題,都是網站和互聯網方面的,這方面我比較擅長,就扯了很多。有的人這兩道題沒有做,所有后來沒有機會參加面試,很可惜。
面試:筆試過了,很多人都接到了面試通知,我也接到了。后來才知道參加面試的有200人,阿里還真是海面。當晚又抱了一下佛腳。通知我的面試時間是11點40,我11點06到場,發現很多人都在等待,遇到我們班前批的同學,有的是9點多面試都還沒輪到。然后我們就直接去科大食堂吃飯了(ps:吃飯時我旁邊的兩個女生一直討論高數的一個定理,科大mm就是強啊),吃完了我們繼續等待。我們班已經有面試出來的了,結果都不太好,我就想自己就當是積累一次面試經驗吧,不指望能通過。12點50多終于輪到我了,1面的gg人很好,總是笑嘻嘻的,我先自我介紹了一下,然后說明我一直都在搞php,java沒搞過,他說沒關系。然后開始問我一些java基本知識,不會的我就直接說不會,他也沒為難我,就找更簡單的問我,始終態度都非常好。了解了我的java水平后就考我兩個簡單的算法(判斷回文和排序),我也順利的寫出來了,然后問了我一些數據庫方面的知識,最后就是項目和實習方面的情況。我也基本上和他配合的很好,說到我擅長的就滔滔而談,不會的就直接說不會。整個面試輕松愉快,持續了近一個半小時,最后他和我說:一面我讓你過了,二面就看你的運氣了。然后給我寫下評語,后來我無意中看到評語,對我的評價很高,真的很感謝這位gg,不然二面就不會那么容易過了。
一面過了都14點10幾分了,繼續等待二面,外面等候區的人還是非常多。等了3個多小時,17點多才喊到我,幸好外面有本班同學邊聊天邊等,不然就等急死了。二面是個主管級的人物,感覺很沉穩,看到一面考官給我評語,對我的印象應該還不錯。開始問了我一些java基礎方面的知識,我拼拼湊湊總是混過去了,他知道我懂得不多也沒深問。然后就開始談php,他對php應該是比較了解,這也是我的強項,我就滔滔而談,他也很滿意我的答案,最后直接告訴我通過了。這輪大概持續了40多分鐘。
出來等3面,過了十幾分鐘就喊道我了,這次是位很nice的hrjj,因為3面不問技術,我也很放松。hr問了我一些性格、與人相處、優缺點等等,我就當聊天隨便應答了,她也比較滿意,直接讓我等6點半的小測試。這時我基本知道就剩最后的性格測試了,應該沒什么問題了。很happy地跑出去了。
6點半,面試基本結束了,考官們都提上行李走了,只剩下我們20多個過了3面的(基本都是科大的,安大的2個,工大的2個),還有幾位hrmm。性格測試,30道選擇,要第一時間作答,做的時候幾位hr不停地在旁邊干擾,我就按實際選了答案,是中間交上去的。hr在旁邊不停地催促、加壓。全部交完后,她們就進去統計結果,十幾分鐘后,一個hrmm出來念了兩個名字,和他們說了幾句話,然后那兩個人就直接拿上自己的包走了。當時我們都驚呆了,這種小測試居然還刷人,而且是兩個,要知道這里的人都是千軍萬馬殺出來的,聽說其中一個還是博士,太可惜了。
然后hr告訴我們剩下的都通過了,告訴我們如何簽協議等細節。接下來就是挨個進去領offer了,我是第二個,進去后發現我們班還有個一直在里面面試并拿到offer了,甚喜。然后我們就一起回校了。
雖然拿到offer,但是還是很感謝運氣以及一面那位gg,總之運氣是非常好,自己都沒有想到會有這個結果。各位還在找工作同學要加油啊,相信自己,一切皆有可能!
面試官提的問題:
一面:先自我介紹,開始問我一些java基本知識,然后問了我一些數據庫方面的知識,最后就是項目和實習方面的情況。
二面:始問了我一些java基礎方面的知識,然后就開始談php,他對php應該是比較了解,這也是我的強項?
第二篇:java工程師面試
精通java語言及面向對象思想 具有扎實的java編程基礎和良好的編程規范
精通 jsp語言 html語言 javascript腳本以及css 樣式
熟練掌握sqlserver oracle 數據庫
熟練使用Spring+Hibernate+Struts 以及 Spring+JDBC+Struts開發
精通Struts+jdbc開發 精通MVC框架開發
精通tomcat運用服務器 熟悉weblogic運用服務器 并可配合eclipse進行開發 熟練使用ant log4j junit 等輔助開發工具
熟練使用CVS/VSS項目同步工具
對factory DAO singleton 等軟件設計模式有很好的理解
對oracle數據庫性能及oracle代碼的規范性和java代碼執行效率以及java缺陷有很好的理解與掌握
熟悉大型項目的開發流程 對業務需求能很好的細致理解,熟練書寫概要設計 需求分析 詳細設計等文檔
2年多累積java代碼30000行 數據庫代碼10000行 具有實際大型項目(江蘇電信)開發經驗和個人獨自完成小項目的能力
具備強烈的學習欲望,工作認真負責,且具有很強的責任心和進取心,與人為善善于溝通,有很好的團隊合作精有神。
江蘇移動秘書 12580 負責個人電話本和呼叫信息增刪查改的開發
負責江蘇移動秘書兩個版本IVR接口csp3.0以及csp6.0的切換開發,錄音放音的控件的使用,使用rational rose繪制UML用例圖,類圖,時序圖等在項目中熟練使用cvs和vss開發同步工具,靈活運用ajax特效,buffalo特效,熟練書寫存儲過程,函數,等ORACLE代碼以及基于定時器的函數。
第三篇:java工程師面試自我介紹
java工程師面試自我介紹
java工程師面試自我介紹1
我學習成績優良,學風端正,學習刻苦努力,奮發向上。在認真完成自身學業的基礎上,積極參加選修課學習和各種課余活動,并取得優秀的成績,通過了計算機三級,并獲得獎學金。努力吸收各方面知識,增強自身的文化修養。計算機水平較高,熟悉與專業相關的各種軟件的操作及網站的制作與維護等等。
我積極投身社會活動,擔任計算機學院科協干事 ,工作積極認真出色,并獲“優秀學生干部”稱號。有較強的社交、組織、實踐和研究分析能力,工作塌實肯干,能夠吃苦耐勞,讓人放心。
我有年輕人的沖勁和魄力,具有很強的團隊精神和集體觀念。對待生活非常樂觀,以誠為本,真誠待人。同時,自己還存在一些不足,但在今后會努力不斷改正,提高自身素質。
我出生在農村,在甘肅的大山里,印象中最深的就是看不到頭的山,走不完的山路。但我喜歡山,喜歡山的樸實無華,喜歡山的巍峨大氣。
初中就離開父母去市里上學,自己租房住,自己做飯吃,一直延續到高中畢業。也許是從小就獨立生活的原因,在思想和行為上本人相對獨立,喜歡按照自己的想法去做事,按自己的想法去生活,簡單的說就是走屬于我自己的路,活我自己的人,也因此和父母產生了不少的矛盾和沖突,上了大學后,自己有意識到去緩解這些矛盾,我知道,要不是因為兒女,我們的.父母原本可以過得更好?!案笎廴缟健保髮W畢業了,我才漸漸的體會到這句很簡單的話的涵義。
我現在是一個程序員,在公司擔任項目經理,每天在計算機面前一坐就是10多個小時,我現在都分不清是為了更好的生活而玩命工作,還是為了更好的工作而用心生活,在生活和工作之間我很難找到一個平衡點!
和所有的男人一樣,我崇尚尊嚴,喜歡榮譽,渴望成功。通向成功的道路是孤獨的,工作之余,午夜時分,我靜靜的躺在床上,一個人品味著這份屬于自己的孤獨,但在孤獨的背后,我渴望一份真摯的愛情,渴望有人在乎我,就像我在乎她一樣,不需要驚天動地,不需要海誓山盟,只要相濡以沫,彼此攙扶著、陪伴著走完人生的旅途。
本人比較傳統,不喜歡看韓劇,尤其是韓國的娛樂節目,不喜歡“非主流”,也不喜歡什么事都云里霧里的女孩子,我不在乎你的出生,你可以外表平平,但我會毫不猶豫的排除思想平庸的女孩子,我喜歡看歐美的電影(喜歡美國口音和歐美人的思維方式),喜歡看足球比賽(不比賽)---球場上我穿的是10號球衣。
java工程師面試自我介紹2
我出生在xx市一個普通工人家庭,從小艱苦的自然環境和并不優越的家庭條件給我留下了深刻的印象,也鍛煉了我吃苦耐勞、勇于拼搏和不肯服輸的性格。為了能夠闖出自己的一帆事業,我深信知識能改變命運,所以在我的學習生活中盡可能多的學習相關的專業知識,充實自己。
xx年我考入了建筑工程學院,踏出我實現理想的第一步。在大學校園里我依然在各方面都嚴格要求自己,不斷提高與人溝通及團隊協作的能力。大學期間雖然學習成績不是太理想,但我從未停止過學習,同時相信自己執著、不肯服輸的個性就是我最大的'財富。
現在我的大學生活即將結束,回想自己十幾年的學生生涯和這十幾年中家庭和社會對我的培養,我知道只有通過不懈的努力和勤奮的工作才能實現自己的理想和價值。
java工程師面試自我介紹3
大家好,我叫xx,天津大學計算機應用專業碩士,20xx年6月份畢業,研究方向,我想從三個方面介紹自己:
(1)學習方面。大三時保送研究生,之后進入實驗室開展項目研究。在x年時間里,先后參與了x個項目,其中x個縱向項目,x個橫向項目,縱向項目主要是關于,橫向項目主要是關于。這些分別對應我里的項目經歷(1,2,3)。我本科績點3.8,研究生績點3.4。我XX年一次通過大學英語四、六級考試,XX年通過托業英語考試,考試成績分(滿分分),XX年通過軟件工程師/網絡工程師/系統分析師考試。
(2)實踐方面。曾在軟件公司實xx年時間,曾在當過計算機講師,主講,另外,本科時曾參加過比賽,并獲得了獎。實習期間,我的最大收獲是:學校學習與工作知識的銜接,深切感悟將理論應用于實踐的重要性和快樂。
(3)社會工作方面。本科和研究生都擔任所在班級班長/**部長,同時也在校學生會工作過。在擔任班干部的日子里我具備了一定的組織、協調能力,并深深體會團隊協作的重要性。
我的性格特點是,1.性格沉穩,2.考慮問題全面、仔細,3.做事有自己明確的想法和計劃。
我的優勢是1.自己全面的綜合素質;2.做事分清輕重緩急;3.喜歡總結,避免犯同樣的錯誤。
我的`是:人因為夢想而偉大,機遇永遠屬于那些有準備、立即行動并能堅持到底的人!
我的職業生涯目標是,將來有一天能帶領一個團隊,做出億萬網民喜愛和尊敬的軟件!做一個既懂技術,又懂業務的復合型人才。
java工程師面試自我介紹4
我叫XXX,今年22歲,畢業于XXX計算機科學與技術專業。由于非常喜歡本專業,并期待將來從事專業方向的工作,因而在校期間十分注重對專業課的學習,擁有扎實的Core Java基礎,良好的編程風格;熟悉JSP+Servlet+JavaBean模式的WEB開發;熟悉Struts,Hibernate,Spring等開源框架,了解EJB; 熟悉Tomcat,Jboss服務器等,熟悉基于Linux及Unix環境下的軟件開發。因為專業課知識掌握牢固,以專業第一的綜合成績畢業。
然而,我深知僅有專業知識是不夠的,社會需要的是高素質復合型人才,因而在校期間學習之外,我積極參加各種社會實踐活動,曾參與過學院網上虛擬實驗室開發的需求分析,大三暑假曾在浪潮軟件園實習,參與了電信增值軟件開發與編挰,通過親自動手及不斷地向有經驗的工程師請教學習,實習結束時我已經基本掌握整個Java平臺的'核心技術,獨立編程能力大大提高。同時實習生活也讓我意識到從事Java編程工作團隊合作的重要性。
雖然我的實際工作經驗還不是很豐富,但相信有了扎實的專業基礎知識和實習期間的實踐經驗,加上好學上進的精神,我能夠勝任應聘崗位需求。希望貴公司給我這次機會。
java工程師面試自我介紹5
考官好,我是計算機專業的面試者,我此次應聘的職位是it行業的軟件工程師,這份工作不僅與我的專業對口,同時也是我的特長與興趣所在。
現在我就從以下三個方面介紹自己:
1)學習能力:我有較強的科研能力,能熟練的進行linux操作,并能使用vb,delphi等語言編程。能運用網頁三劍客photoshop軟件進行相關工作。
2)實踐能力:我的專長是軟件開發,我希望能從事這方面的工作經驗,并且我曾經發過多個系統,如人事檔案管理系統,工資管理系統等等。
3)交際能力:我的性格沉穩,能坐得住,對it行業的工作,具有非常好的'適應能力,而且為人謙和,具有很強的組織和協調能力,富有的事業心和責任感使我能夠面對任何困難和挑戰。 從以上的簡單自我介紹,我希望公司能給我一個展示自己能力的機會,讓我我可以學以致用,同時我也很欣賞xx公司的企業文化與工作環境。我愿意成為企業一員,為企業的發展貢獻自己的一份力量。我的職業生涯目標是,做一個既懂技術,又懂業務的復合型人才。
java工程師面試自我介紹6
欲善其事,必先利其器。大學幾年,我始終堅持天道酬勤的原則,一日三省,自信品格的日趨完善;勇于行事,務實求新,自信工作有所成績;三更燈火,寒窗苦讀,相信學有所成。
在校期間,我始終以提高自身的綜合素質為目的,以個人的全面發展為奮斗方向,樹立正確的人生觀和價值觀,光榮地加入了中國共產黨。
為適應社會發展的需求,我努力學好專業知識,多次獲得獎學金,較深入、全面地掌握了軟件編程、硬件維護與開發、網絡應用技術等計算機科學基礎理論以及計算機在企業管理、工業生產、輔助設計制造等方面的應用知識,同時注意結合自身專業特點,結合動手實踐,先后參與了校新聞網頁設計大賽、校程序設計大賽、挑戰杯中國大學生創業計劃競賽、校科研立項項目,同時根據自己的愛好,進行了物業管理師的培訓及資格認證考核、暑期社會實踐調查,都取得了不凡的成績。
作為一名即將畢業的20xx年應屆計算機專業的大學生,我所擁有的是年輕和知識,使我不畏困難,善于思考,但年輕也意味著閱歷淺,更需要虛心向學。同時,我也深知,畢業只是求學的`一小步,社會才是一所真正的大學。我今天的求職,也正是希望得到一個更好的學習機會,從而能以更好的工作成績為國家和單位貢獻力量,同時去實現人生價值。
java工程師面試自我介紹7
大家好,我是x職業學院信息電子系計算機硬件專業的一名應屆畢業生,衷心感謝您抽出寶貴時間審閱我的簡歷。在三年的學習生活中,我牢固地掌握了計算機硬件與電子專業的基礎知識,精通數電與模電,熟練office辦公軟件,對計算機組裝與維護把握深刻,并在各種實踐中獲得了一定的實際運用能力。并利用課余時間進行了漢語言文學自學考試,通過科目過半。在自考期間不但提高了文學功底,而且培養了我堅強的意志。課余時間我還廣泛閱讀各方面書籍,積極參加各種集體活動和社會實踐活動,擴展了知識面,培養了團隊精神,增強了組織交際能力,提升了綜合素質。
雖然缺少工作經驗和社會閱歷,但我會在實踐工作中勤奮學習,彌補不足,積極進步?;蛟S我應聘的職位和計算機硬件專業并不對口,但我認為人的才能并不僅局限于所學的專業,在其他領域同樣有可挖掘的潛力!
大家好,我叫。我是一個善于合的人,合作能提高做事的效率和效果,而且在做事的`過程中若能成功協調個人能力及利益,那就感覺更好。如果沒有了內部矛盾,大家就能集中力量一起努力,就能把團隊作用發揮到最強。
喜歡實踐,好動手,相信實踐是檢驗一切對錯的標準,我很重視實踐后留下的結果,都會隔一段時間整理我的資料。
工作方面,努力,責任意識強,能將精力很好的集中在所需關注的點上,關注細節是我的強項講究實際效果,采取現實可行的方法。喜歡參加各活動和社會實踐,因為這樣可以更好的鍛煉自己。
業余喜歡畫畫和攝影,通過戶外不同的生態環境,來開拓自己的視野。
我希望貴公司能給我提供一次施展才能的機會,我一定不辜負公司的厚望,為公司的發展作出貢獻。謝謝!
第四篇:java工程師面試自我介紹
java工程師面試自我介紹范文
面試自我介紹是Java開發工程師求職者面試前必練的內容,也是Java開發工程師求職面試中的重要一環。下面是有關Java開發工程師的面試自我介紹范文,以供大家閱讀。
java工程師面試自我介紹范文(一)我叫XXX,今年22歲,畢業于XXX計算機科學與技術專業。由于非常喜歡本專業,并期待將來從事專業方向的工作,因而在校期間十分注重對專業課的學習,擁有扎實的Core Java基礎,良好的編程風格;熟悉JSP+Servlet+JavaBean模式的WEB開發;熟悉Struts,Hibernate,Spring等開源框架,了解EJB;熟悉Tomcat,Jboss服務器等,熟悉基于Linux及Unix環境下的軟件開發。因為專業課知識掌握牢固,以專業第一的綜合成績畢業。
然而,我深知僅有專業知識是不夠的,社會需要的是高素質復合型人才,因而在校期間學習之外,我積極參加各種社會實踐活動,曾參與過學院上虛擬實驗室開發的需求分析,大三暑假曾在浪潮軟件園實習,參與了電信增值軟件開發與編挰,通過親自動手及不斷地向有經驗的工程師請教學習,實習結束時我已經基本掌握整個Java平臺的核心技術,獨立編程能力大大提高。同時實習生活也讓我意識到從事Java編程工作團隊合作的重要性。
雖然我的實際工作經驗還不是很豐富,但相信有了扎實的專業基礎知識和實習期間的實踐經驗,加上好學上進的精神,我能夠勝任應聘崗位需求。希望貴公司給我這次機會。
java工程師面試自我介紹范文(二)各位尊敬的考官:
大家下午好!很榮幸能在這里面試,讓我有向各位考官學習與交流的機會,現將自己的情況簡要介紹一下:
我叫xxx,出身在xx。性格比較溫和、謙虛、認真細致、踏實、吃苦耐勞、有較強的責任心和社會適應能力。即將于xx年xx月畢業于河南工業職業技術學院,作為一名軟件專業的大學生,我更喜歡平面設計,在大學三年的學習生活中,我對平面這一領域的相關知識有了一定的掌握,同時具有實際的操作能力與技術。
為了使在校所學的知識更好地應用到實際生活中,于xx年xx月有幸來北京中科院計算機所培訓中心,通過三個月的實踐訓練,全面系統地學習了平面方面的專業知識與技能,能夠應用平面設計的相關軟件(photoshop圖像處理軟件、illustrator與coreidraw矢量繪圖軟件、indesigin與pagemaker排版軟件)做基本的圖像處理、海報、企業宣傳冊等,能夠將所學知識真正應用到實際生活中。
在投身于社會之際,為了找到符合自己專業和興趣的工作,更好地適應社會,我希望自己能夠做到一種被別人需要的一種狀態,至于做什么,就是在實踐中,不斷的學習、不斷的鍛煉。因此,我希望加入貴單位,如果能夠成為公司的一份子,我相信我一定在自己的崗位上盡職盡責、踏踏實實地貢獻之集的一份力量,與公司共同促進、發展。
“世界之大,人才濟濟”。我承認之集還不是最優秀的人才,但是我希望之集是此崗位最合適的人選,希望有幸能夠被貴公司領導予以特別考慮。今后我在好的方面再接再厲,不足之處有所改善,我的介紹到此結束。謝謝!
第五篇:Java 軟件工程師面試筆試題
Java 軟件工程師面試筆試題.txt﹃根網線''盡賺了多少人的青春い有時候感動的就是身邊微不足道的小事。﹎破碎不是最殘酷的 最殘酷的是踩著這些碎片卻假裝不疼痛 固執的尋找﹎將來就算我遇見再怎么完美的人,都有一個缺點,他不是你,_____下輩子要做男生,娶一個像我這樣的女生。
一、你對MVC的理解,MVC有什么優缺點?結合Struts,說明在一個Web應用如何去使用? 答:
MVC設計模式(應用觀察者模式的框架模式)
M: Model(Business process layer),模型,操作數據的業務處理層,并獨立于表現層(Independent of presentation)。
V: View(Presentation layer),視圖,通過客戶端數據類型顯示數據,并回顯模型層的執行結果。
C: Controller(Control layer),控制器,也就是視圖層和模型層橋梁,控制數據的流向,接受視圖層發出的事件,并重繪視圖
MVC框架的一種實現模型 模型二(Servlet-centric):
JSP+Servlet+JavaBean,以控制為核心,JSP只負責顯示和收集數據,Sevlet,連接視圖和模型,將視圖層數據,發送給模型層,JavaBean,分為業務類和數據實體,業務類處理業務數據,數據實體,承載數據,基本上大多數的項目都是使用這種MVC的實現模式。
StrutsMVC框架(Web application frameworks)
Struts是使用MVC的實現模式二來實現的,也就是以控制器為核心。
Struts提供了一些組件使用MVC開發應用程序:
Model:Struts沒有提供model類。這個商業邏輯必須由Web應用程序的開發者以JavaBean或EJB的形式提供
View:Struts提供了action form創建form bean, 用于在controller和view間傳輸數據。此外,Struts提供了自定義JSP標簽庫,輔助開發者用JSP創建交互式的以表單為基礎的應用程序,應用程序資源文件保留了一些文本常量和錯誤消息,可轉變為其它語言,可用于JSP中。
Controller:Struts提供了一個核心的控制器ActionServlet,通過這個核心的控制器來調用其他用戶注冊了的自定義的控制器Action,自定義Action需要符合Struts的自定義Action規范,還需要在struts-config.xml的特定配置文件中進行配置,接收JSP輸入字段形成Action form,然后調用一個Action控制器。Action控制器中提供了model的邏輯接口。
二、什么是WebService? 答:
WebService是一個SOA(面向服務的編程)的架構,它是不依賴于語言,不依賴于平臺,可以實現不同的語言間的相互調用,通過Internet進行基于Http協議的網絡應用間的交互。WebService實現不同語言間的調用,是依托于一個標準,webservice是需要遵守WSDL(web服務定義語言)/SOAP(簡單請求協議)規范的。WebService=WSDL+SOAP+UDDI(webservice的注冊)
Soap是由Soap的part和0個或多個附件組成,一般只有part,在part中有Envelope和Body。
Web Service是通過提供標準的協議和接口,可以讓不同的程序集成的一種SOA架構。Web Service的優點
(1)可以讓異構的程序相互訪問(跨平臺)
(2)松耦合
(3)基于標準協議(通用語言,允許其他程序訪問)Web Service的基本原理
(1)Service Provider采用WSDL描述服務
(2)Service Provider 采用UDDI將服務的描述文件發布到UDDI服務器(Register server)
(3)Service Requestor在UDDI服務器上查詢并 獲取WSDL文件
(4)Service requestor將請求綁定到SOAP,并訪問相應的服務。
三、什么是中間件?
中間件就是程序中可織入的,可重用的,與業務邏輯無關的各種組件。
中間件(middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統軟件與用戶的應用軟件的中間。中間件在操作系統、網絡和數據庫之上,應用軟件的下層,總的作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件。
在眾多關于中間件的定義中,比較普遍被接受的是IDC表述的:中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源,中間件位于客戶機服務器的操作系統之上,管理計算資源和網絡通信。
分類:數據訪問中間件,遠程調用中間件,消息中間件,交易中間件,對象中間件。
舉例:
1,RMI(Remote Method Invocations, 遠程調用)
2,Load Balancing(負載均衡,將訪問負荷分散到各個服務器中)
3,Transparent Fail-over(透明的故障切換)
4,Clustering(集群,用多個小的服務器代替大型機)
5,Back-end-Integration(后端集成,用現有的、新開發的系統如何去集成遺留的系統)
6,Transaction事務(全局/局部)全局事務(分布式事務)局部事務(在同一數據庫聯接內的事務)
7,Dynamic Redeployment(動態重新部署,在不停止原系統的情況下,部署新的系統)
8,System Management(系統管理)
9,Threading(多線程處理)
10,Message-oriented Middleware面向消息的中間件(異步的調用編程)
11,Component Life Cycle(組件的生命周期管理)
12,Resource pooling(資源池)
13,Security(安全)
14,Caching(緩存)
四、什么是典型的軟件三層結構?軟件設計為什么要分層?軟件分層有什么好處? 答:(1)Presentation layer(表示層)
(1)表示邏輯(生成界面代碼)
(2)接收請求
(3)處理業務層拋出的異常
(4)負責規則驗證(數據格式,數據非空等)
(5)流程控制
(2)Service layer(服務層/業務層)
(1)封裝業務邏輯處理,并且對外暴露接口
(2)負責事務,安全等服務
(3)Persistence layer(持久層)
(1)封裝數據訪問的邏輯,暴露接口
(2)提供方便的數據訪問的方案(查詢語言,API,映射機制等)Domain layer(域層)
(1)業務對象以及業務關系的表示
(2)處理簡單的業務邏輯
(3)域層的對象可以穿越表示層,業務層,持久層
軟件分層結構使得代碼維護非常方便,設計明確,各層獨立,專注自己擅長的領域。
五、什么是OOP?OOP相對于面向過程編程有哪些優點?
OOP,Object-Oriented Programming,面向對象編程不同于面向過程編程:
(1)OOP關注對象和角色,也就是事物的本質
1)OOP把客觀世界中的對象抽象成對應的類;
2)通過類構造實例;
3)通過依賴、繼承、實現等形式建立對象間的通信關系
(2)OOP易于擴展,增加或改變業務的功能,無需大幅改動改變源代碼
(3)OOP易于建模,OOP就是軟件架構師在計算機高級語言中對客觀世界的抽象和再現,人們可以很好地理解和建立起計算機中的抽象模型
六、談談Overload和Override的區別。
答:
方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫(Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。
七、談談HashMap和Hashtable的區別。答:
HashMap是輕量級的(線程不安全的,效率高的)集合,Hashtable是重量級的(線程安全的,效率低的)集合。
都屬于Map接口的類,實現了將惟一鍵映射到特定的值上。
HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。
八、請問abstract class和interface有什么區別?
答:
1)接口沒有任何的實現,而抽象類它可以有部分的實現也可以沒有;
2)如果需要復用或者共享部分代碼,應該用抽象類而不是接口;
3)繼承無法解決類型的轉換問題,接口就是為了解決這一問題而產生的(Java的單繼承是接口產生的根本原因)接口是一種抽象的第三方規范,跟對象沒什么直接關系。
九、請問軟件開發中的設計模式你會使用哪些?
答:我熟悉的設計模式有單例模式,DAO模式,模板方法,工廠模式,委托代理模式,MVC模式等。
Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。
Singleton模式一般形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變量,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。
十、類的核心特性有哪些?
類具有封裝性、繼承性和多態性。
封裝性:
類的封裝性為類的成員提供公有、缺省、保護和私有等多級訪問權限,目的是隱藏類中的私有變量和類中方法的實現細節。
繼承性:
類的繼承性提供從已存在的類創建新類的機制,繼承(inheritance)使一個新類自動擁有被繼承類(父類)的全部成員。
多態性:
類的多態性提供類中方法執行的多樣性,多態性有兩種表現形式:重載和覆蓋。
十一、請問類與對象有什么區別?
類
類就是某一種事物的一般性的集合體,是相同或相似的各個事物共同特性的一種抽象。
對象
在面向對象概念中,對象(Object)是類的實例(instance)。對象與類的關系就像變量與數據類型的關系一樣。
十二、寫出生產者消費者模型的實現
十三、用軟件工程和Java來敘述購物車(shopping cart)系統實現
十四、文件系統的幾個類:FileInputStream、FileOutputStream、FileReader、FileWriter的區別
十五、請寫出Java API中最常用的五個包,并且各舉兩個類加以說明。
十六、請問你在“電信運營支撐系統”中遇到了哪些問題?你是怎么解決的?做這個項目你最大的收獲是什么?
十七、請說出幾個常用的異常類
答:NullpointException(空指針異常)
ClassNotFoundException(類找不到異常)
ClassCastException(類型轉換異常)
IllegalArgumentException(非法參數異常)
ArithmeticException(算術異常)
NumberFormatException(數據格式異常)
IndexOutOfBoundsException(數組下標越界異常)
IllegalStateException(非法語句異常)
十八、什么是進程和線程?兩者的區別是什么?
十九、請簡要描述一下你做的ShoppingCart項目。
二十、請問網絡7層協議,tcp/ip4 層協議是什么?
二十一、Java面向對象的四大特點
二十二、public,private,protected,default訪問權限(可見性)
答:
public:全局可見
protected:繼承體系結構之間可見
default(或不寫):同包可見
private:本類可見。
二十二、public,private,protected,default訪問權限(可見性)
答:
public:全局可見
protected:繼承體系結構之間可見
default(或不寫):同包可見
private:本類可見。
二十三、名詞解釋
CRM
[Customer Relationship Management, 客戶關系管理] ERP
[Enterprise Resource Planning, 企業資源規劃] OSS
[Operation Support System, 運營支撐系統] BSS
[Business Support System, 數據定義語言] BOSS
[Business Operation Support System, 數據定義語言] OA
[Office Automatization, 辦公自動化] HTTP OOP SOA GUI DDL
[Data Definition Language, 數據定義語言] DML
[Data Manipulation Language, 數據操作語言]
WYSIWYG
所見即所得 [What You See is What You Get] CMP CMT B2B C2C B2C IDE DOM
Client/Server CMM ORM MIS MVC
MVC是Model-View-Controller的簡寫?!癕odel” 代表的是應用的業務邏輯(通過JavaBean,EJB組件實現),“View” 是應用的表示面(由JSP頁面產生),“Controller” 是提供應用的處理過程控制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行交互和重用。
OLE
CORBA
CORBA 標準是公共對象請求代理結構(Common Object Request Broker Architecture),由對象管理組織(Object Management Group,縮寫為 OMG)標準化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯編)和允許應用程序間互操作的協議。其目的為:
用不同的程序設計語言書寫
在不同的進程中運行
為不同的操作系統開發。
UML
UML,標準建模語言,包含用例圖,靜態圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實現圖等。
XML CMMI JRE J2EE
J2EE是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業級應用模型(enterpriese application model).在這樣的一個應用系統中,可按照功能劃分為不同的組件,這些組件又可在不同計算機上,并且處于相應的層次(tier)中。所屬層次包括客戶層(clietn tier)組件,web層和組件,Business層和組件,企業信息系統(EIS)層。
JDK AOP OO
Container W3C JMS
Domain POJO JVM JNDI JTA SOAP
[Simple Object Access Protocol,簡單對象訪問協議] WSDL JDO
JDO是Java對象持久化的新的規范,為Java Data Object的簡稱,也是一個用于存取某種數據倉庫中的對象的標準化API。JDO提供了透明的對象存儲,因此對開發人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而集中時間和精力在業務邏輯上。另外,JDO很靈活,因為它可以在任何數據底層上運行。JDBC只是面向關系數據庫(RDBMS)JDO更通用,提供到任何數據底層的存儲功能,比如關系數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強。
TDD DAO IoC
[Inversion of Control, 控制反轉] RMI DNS
[Internet Domain Name System, 因特網域名系統] URL URI
二十四、數據庫連接池的工作機制
二十五、互聯網提供哪些服務?
二十六、請寫出JSP的幾個隱含內置對象
答:JSP中隱含內置對象
名稱 類型
request javax.servlet.http.HttpServletRequest request
response javax.servlet.http.HttpServletResponse
注釋和范圍 response page javax.lang.Object page
Exception java.lang.Throwable page
pageContext javax.servlet.jsp.PageContext page
session javax.servlet.http.HttpSession session
application javax.servlet.ServletContext ServletContext out javax.servlet.jsp.JspWriter OutputStream
config javax.servlet.ServletConfig ServletConfig
JSP共有以下9種基本內置組件(可與ASP的6種內部組件相對應):
request 用戶端請求,此請求會包含來自GET/POST請求的參數
response 網頁傳回用戶端的回應
page JSP 網頁本身
exception 針對錯誤網頁,未捕捉的例外
pageContext 網頁的屬性是在這里管理
session 與請求有關的會話期
application servlet 正在執行的內容
out 用來傳送回應的輸出
config Servlet的構架部件
二十七、請你談談SSH整合
答:SSH:
Struts(表示層)+Spring(業務層)+Hibernate(持久層)
Struts:
Struts是一個表示層框架,主要作用是界面展示,接收請求,分發請求。
在MVC框架中,Struts屬于VC層次,負責界面表現,負責MVC關系的分發。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action)
Hibernate:
Hibernate是一個持久層框架,它只負責與關系數據庫的操作。
Spring:
Spring是一個業務層框架,是一個整合的框架,能夠很好地黏合表示層與持久層。
二十八、應用服務器與Web Server的區別
二十九、Java Servlet API中forward()與redirect()的區別
答:
前者僅是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址;后者則是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用sendRedirect()方法。
三
十、寫一個簡單的C/S結構程序,Java 的通信編程,編程題(或問答),用JAVA SOCKET編程,讀服務器幾個字符,再寫入本地顯示?
答:Server端程序: package test;import java.net.*;import java.io.*;
public class Server { private ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server(){ try { ss=new ServerSocket(10000);while(true){ socket = ss.accept();String RemoteIP = socket.getInetAddress().getHostAddress();String RemotePort = “:”+socket.getLocalPort();System.out.println(“A client come in!IP:”+RemoteIP+RemotePort);in = new BufferedReader(new
InputStreamReader(socket.getInputStream()));String line = in.readLine();System.out.println(“Cleint send is :” + line);out = new PrintWriter(socket.getOutputStream(),true);out.println(“Your Message Received!”);out.close();in.close();socket.close();} }catch(IOException e){ out.println(“wrong”);} } public static void main(String[] args){ new Server();} };Client端程序: package test;import java.io.*;import java.net.*;
public class Client { Socket socket;BufferedReader in;PrintWriter out;public Client(){ try { System.out.println(“Try to Connect to 127.0.0.1:10000”);socket = new Socket(“127.0.0.1”,10000);System.out.println(“The Server Connected!”);System.out.println(“Please enter some Character:”);BufferedReader line = new BufferedReader(new
InputStreamReader(System.in));out = new PrintWriter(socket.getOutputStream(),true);out.println(line.readLine());in = new BufferedReader(new InputStreamReader(socket.getInputStream()));System.out.println(in.readLine());out.close();in.close();socket.close();}catch(IOException e){ out.println(“Wrong”);} } public static void main(String[] args){ new Client();} };