面試復(fù)習(xí)大綱(Java幫幫總結(jié))

【簡(jiǎn)歷】1年簡(jiǎn)歷模板一

【人事】31道宣谈,不準(zhǔn)備就掉坑的問(wèn)題

【簡(jiǎn)歷】2年簡(jiǎn)歷模板一

【簡(jiǎn)歷】3年簡(jiǎn)歷模板一

【面試】面試練習(xí)題大集合(持續(xù)更新中...歡迎問(wèn)題投稿)

更多整理的問(wèn)題點(diǎn)擊公眾號(hào)中間的“簡(jiǎn)歷/面試”菜單即可

面試+簡(jiǎn)歷+溝通+工作流程+談判_匯總

想要成為合格的Java程序員或工程師到底需要具備哪些專業(yè)技能胎撤,面試者在面試之前到底需要準(zhǔn)備哪些東西呢?本文陳列的這些內(nèi)容既可以作為個(gè)人簡(jiǎn)歷中的內(nèi)容掩缓,也可以作為面試的時(shí)候跟面試官聊的東西霹菊,你可以把這些內(nèi)容寫(xiě)到你的簡(jiǎn)歷中冬念,當(dāng)然更需要的是你在面試的時(shí)候向面試官展示這些專業(yè)技能。相信此文對(duì)正在尋覓Java程序員(Java工程師)職位的freshman以及希望成為中高級(jí)Java開(kāi)發(fā)者的junior都會(huì)有所幫助崇渗。

專業(yè)技能

1.?熟練的使用Java語(yǔ)言進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)字逗,有良好的編程習(xí)慣京郑,熟悉常用的Java API,包括集合框架葫掉、多線程(并發(fā)編程)些举、I/ONIO)、Socket俭厚、JDBC户魏、XML、反射等挪挤。[泛型]

2.????熟悉基于JSPServletJava Web開(kāi)發(fā)叼丑,對(duì)ServletJSP的工作原理和生命周期有深入了解,熟練的使用JSTLEL編寫(xiě)無(wú)腳本動(dòng)態(tài)頁(yè)面扛门,有使用監(jiān)聽(tīng)器鸠信、過(guò)濾器等Web組件以及MVC架構(gòu)模式進(jìn)行Java Web項(xiàng)目開(kāi)發(fā)的經(jīng)驗(yàn)。

3.????對(duì)SpringIoC容器和AOP原理有深入了解尖飞,熟練的運(yùn)用Spring框架管理各種Web組件及其依賴關(guān)系症副,熟練的使用Spring進(jìn)行事務(wù)、日志政基、安全性等的管理,有使用Spring MVC作為表示層技術(shù)以及使用Spring提供的持久化支持進(jìn)行Web項(xiàng)目開(kāi)發(fā)的經(jīng)驗(yàn)闹啦,熟悉Spring對(duì)其他框架的整合沮明。

4.????熟練的使用HibernateMyBatisORM框架窍奋,熟悉HibernateMyBatis的核心API荐健,對(duì)Hibernate的關(guān)聯(lián)映射、繼承映射琳袄、組件映射江场、緩存機(jī)制、事務(wù)管理以及性能調(diào)優(yōu)等有深入的理解窖逗。

5.????熟練的使用HTML址否、CSSJavaScript進(jìn)行Web前端開(kāi)發(fā),熟悉jQueryBootstrap碎紊,對(duì)Ajax技術(shù)在Web項(xiàng)目中的應(yīng)用有深入理解佑附,有使用前端MVC框架(AngularJS)和JavaScript模板引擎(HandleBars進(jìn)行項(xiàng)目開(kāi)發(fā)的經(jīng)驗(yàn)。

6.????熟悉常用的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品(MySQL仗考、Oracle)音同,熟練的使用SQLPL/SQL進(jìn)行數(shù)據(jù)庫(kù)編程。

7.????熟悉面向?qū)ο蟮脑O(shè)計(jì)原則秃嗜,對(duì)GoF設(shè)計(jì)模式和企業(yè)應(yīng)用架構(gòu)模式有深入的了解和實(shí)際開(kāi)發(fā)的相關(guān)經(jīng)驗(yàn)权均,熟練的使用UML進(jìn)行面向?qū)ο蟮姆治龊驮O(shè)計(jì)顿膨,有TDD(測(cè)試驅(qū)動(dòng)開(kāi)發(fā))和DDD(領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))的經(jīng)驗(yàn)。

8.????熟悉Apache叽赊、NginX恋沃、TomcatWildFly蛇尚、WeblogicWeb服務(wù)器和應(yīng)用服務(wù)器的使用芽唇,熟悉多種服務(wù)器整合、集群和負(fù)載均衡的配置取劫。

9.????熟練的使用產(chǎn)品原型工具Axure匆笤,熟練的使用設(shè)計(jì)建模工具PowerDesignerEnterprise Architect,熟練的使用Java開(kāi)發(fā)環(huán)境EclipseIntelliJ谱邪,熟練的使用前端開(kāi)發(fā)環(huán)境WebStorm炮捧,熟練的使用軟件版本控制工具SVNGit,熟練的使用項(xiàng)目構(gòu)建和管理工具MavenGradle惦银。

說(shuō)明:上面羅列的這些東西并不是每一項(xiàng)你都要爛熟于心咆课,根據(jù)企業(yè)招聘的具體要求可以做相應(yīng)的有針對(duì)性的準(zhǔn)備。我個(gè)人覺(jué)得前6項(xiàng)應(yīng)該是最低要求扯俱,是作為一個(gè)Java開(kāi)發(fā)者必須要具備的專業(yè)技能书蚪。

項(xiàng)目經(jīng)驗(yàn)

實(shí)際情況為主,適自己能力而定迅栅。

項(xiàng)目介紹

本系統(tǒng)是X委托Y開(kāi)發(fā)的用于Z的系統(tǒng)殊校,系統(tǒng)包括AB读存、C为流、D等模塊。系統(tǒng)使用了Java企業(yè)級(jí)開(kāi)發(fā)的開(kāi)源框架E以及前端技術(shù)F让簿。表示層運(yùn)用了G架構(gòu)敬察,使用H作為視圖I作為控制器并實(shí)現(xiàn)了REST風(fēng)格的請(qǐng)求;業(yè)務(wù)邏輯層運(yùn)用了J模式尔当,并通過(guò)K實(shí)現(xiàn)事務(wù)莲祸、日志和安全性等功能,通過(guò)L實(shí)現(xiàn)緩存服務(wù)居凶;持久層使用了M封裝CRUD操作虫给,底層使用N實(shí)現(xiàn)數(shù)據(jù)存取。整個(gè)項(xiàng)目采用了P開(kāi)發(fā)模型侠碧。

說(shuō)明:上面的描述中抹估,E通常指SpringJava企業(yè)級(jí)開(kāi)發(fā)的一站式選擇);F最有可能是jQuery庫(kù)及其插件或者是Bootstrap框架弄兜,當(dāng)然如果要構(gòu)建單頁(yè)應(yīng)用(SPA)最佳的方案是前端MVC框架(如AngularJS)和JavaScript模板引擎(如HandleBars)药蜻;G顯然是MVC(模型-視圖-控制)瓷式,最有可能的實(shí)現(xiàn)框架是Spring MVC,除此之外還有Struts 2语泽、JSF以及ApacheJSF提供的MyFaces實(shí)現(xiàn)贸典,可以使用JSP作為MVC中的V,也可使用模板引擎(如FreemarkerVelocity)來(lái)生成視圖踱卵,還可以是各種文檔或報(bào)表(如ExcelPDF等)廊驼,而Servlet和自定義的控制器是MVC中的C,當(dāng)然Spring MVC中提供了作為前端控制器的DispatcherServlet惋砂;J通常是事務(wù)腳本妒挎,K應(yīng)該是AOP(面向切面編程)技術(shù),L目前廣泛使用的有memcachedRedis西饵;M的選擇方案很多酝掩,最有可能的是HibernateMyBatis,也可以兩種技術(shù)同時(shí)運(yùn)用眷柔,但通常是將增刪改交給Hibernate來(lái)處理期虾,而復(fù)雜的查詢則由MyBatis完成,此外TopLink驯嘱、jOOQ也是優(yōu)秀的持久層解決方案镶苞;底層的數(shù)據(jù)存取傳統(tǒng)上是使用關(guān)系型數(shù)據(jù)庫(kù),可以是MySQL鞠评、Oracle宾尚、SQLServerDB2等谢澈,隨著大數(shù)據(jù)時(shí)代的來(lái)臨,也可以采用NoSQL(如MongoDB御板、MemBase锥忿、BigTable等)和其他大數(shù)據(jù)存取方案(如GFSHDFS等)怠肋;項(xiàng)目的開(kāi)發(fā)模型P可以是瀑布模型敬鬓、快速原型模型、增量模型笙各、螺旋模型钉答、噴泉模型、RAD模型等杈抢。

項(xiàng)目開(kāi)發(fā)流程

1.????可行性分析?>>>?可行性分析報(bào)告?/?項(xiàng)目開(kāi)發(fā)計(jì)劃書(shū)

2.????需求分析?>>>?需求規(guī)格說(shuō)明書(shū)

o??OOAD(用例圖数尿、時(shí)序圖、活動(dòng)圖)

o??界面原型:幫助理解需求惶楼、業(yè)務(wù)層設(shè)計(jì)時(shí)推導(dǎo)事務(wù)腳本

3.????設(shè)計(jì)?>>>?概要設(shè)計(jì)說(shuō)明書(shū)/詳細(xì)設(shè)計(jì)說(shuō)明書(shū)

o??抽取業(yè)務(wù)實(shí)體(領(lǐng)域?qū)ο螅侯悎D右蹦、E-R圖(概念設(shè)計(jì)階段)

o??分層架構(gòu):確定各層的技術(shù)實(shí)現(xiàn)方案(具體到使用的框架诊杆、數(shù)據(jù)庫(kù)服務(wù)器、應(yīng)用服務(wù)器等)何陆。

o??業(yè)務(wù)層設(shè)計(jì):事務(wù)腳本模式(事務(wù):用戶發(fā)送一次請(qǐng)求就是一個(gè)事務(wù)晨汹;腳本:一個(gè)方法或一個(gè)函數(shù);事務(wù)腳本:把一次請(qǐng)求封裝為一個(gè)方法或一個(gè)函數(shù)贷盲;事務(wù)腳本模式:一個(gè)事務(wù)開(kāi)始于腳本的打開(kāi)淘这,終止于腳本的關(guān)閉)。

o??業(yè)務(wù)層涉及的對(duì)象有三種類型:事務(wù)腳本類(封裝了業(yè)務(wù)的流程)巩剖、數(shù)據(jù)訪問(wèn)對(duì)象(DAO铝穷,封裝了持久化操作)、數(shù)據(jù)傳輸對(duì)象(DTO球及,封裝了失血/貧血領(lǐng)域?qū)ο螅┭踔瑁咧g的關(guān)系是事務(wù)腳本類組合(聚合)數(shù)據(jù)訪問(wèn)對(duì)象,這二者都依賴了數(shù)據(jù)傳輸對(duì)象

o??正向工程(UML類圖生成Java代碼)和逆向工程(Java代碼生成UML類圖)

o??數(shù)據(jù)庫(kù)物理設(shè)計(jì)(ER圖轉(zhuǎn)換成表間關(guān)系圖吃引、建庫(kù)和建表筹陵、使用工具插入測(cè)試數(shù)據(jù))

4.????編碼

5.????測(cè)試?>>>?測(cè)試報(bào)告?/?缺陷報(bào)告

o??單元測(cè)試:對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證,在Java中是對(duì)類中的方法進(jìn)行測(cè)試镊尺,可以使用JUnit工具來(lái)實(shí)施朦佩。

o??集成測(cè)試:集成測(cè)試也叫組裝測(cè)試或聯(lián)合測(cè)試。在單元測(cè)試的基礎(chǔ)上庐氮,將所有模塊按照設(shè)計(jì)要求組裝成為子系統(tǒng)進(jìn)行測(cè)試语稠。

o??系統(tǒng)測(cè)試:將已經(jīng)確認(rèn)的軟件、硬件弄砍、外設(shè)仙畦、網(wǎng)絡(luò)等元素結(jié)合在一起,進(jìn)行信息系統(tǒng)的各種組裝測(cè)試和確認(rèn)測(cè)試音婶,系統(tǒng)測(cè)試是針對(duì)整個(gè)產(chǎn)品系統(tǒng)進(jìn)行的測(cè)試慨畸,目的是驗(yàn)證系統(tǒng)是否滿足了需求規(guī)格的定義,找出與需求規(guī)格不符或與之矛盾的地方衣式,從而提出更加完善的方案寸士。

o??驗(yàn)收測(cè)試:在軟件產(chǎn)品完成了單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試之后碴卧,產(chǎn)品發(fā)布之前所進(jìn)行的軟件測(cè)試活動(dòng)弱卡。它是技術(shù)測(cè)試的最后一個(gè)階段,也稱為交付測(cè)試住册。驗(yàn)收測(cè)試的目的是確保軟件準(zhǔn)備就緒婶博,并且可以讓最終用戶將其用于執(zhí)行軟件的既定功能和任務(wù)。

6.????交付和維護(hù)?>>>?用戶手冊(cè)?/?操作手冊(cè)

項(xiàng)目管理

·???????版本控制:CVS/SVN/Git

·???????自動(dòng)構(gòu)建:Ant/Maven/Ivy/Gradle

·???????持續(xù)集成:Hudson/Jenkins

系統(tǒng)架構(gòu)

·???????負(fù)載均衡服務(wù)器:F5界弧、A10

·???????應(yīng)用服務(wù)器:

§?HTTP服務(wù)器:Apache凡蜻、NginXHTTP搭综、反向代理、郵件代理服務(wù)器)

§?Servlet容器:Tomcat划栓、Resin

§?EJB容器:WildFlyJBoss Application Server)兑巾、GlassFishWeblogic忠荞、Websphere

·???????數(shù)據(jù)庫(kù)服務(wù)器:MySQL蒋歌、Oracle

第三方工具(插件)應(yīng)用

·???????圖表工具:基于jQuery的圖表插件(如jQchartFlot委煤、Charted等)堂油、Chart.jsHighcharts等碧绞。[fusioncharts]

·???????報(bào)表工具:Pentaho Reporting府框、iReportDynamicReports等讥邻。

·???????文檔處理:POI迫靖、iText等。

·???????工作流引擎:jBPM兴使、OpenWFE系宜、SnakerSWAMP等发魄。

·???????作業(yè)調(diào)度:Quartz盹牧、JobServerOddjob等励幼。

·???????緩存服務(wù):EhCache汰寓、memcachedSwarmCache等苹粟。

·???????消息隊(duì)列:Open-MQ踩寇、ZeroMQ等。

·???????安全框架:Shiro六水、PicketBox等。

·???????搜索引擎:IndexTank辣卒、Lucene掷贾、ElasticSearch等。

·???????Ajax框架:jQuery荣茫、ExtJS想帅、DWR等。

·???????UI插件:EasyUI啡莉、MiniUI等港准。

·???????富文本框:UEditor旨剥、CKEditor等。

面試提問(wèn)

·???????項(xiàng)目是為哪個(gè)公司開(kāi)發(fā)的浅缸?項(xiàng)目的投入是多少轨帜?

·???????有多少人參與了項(xiàng)目開(kāi)發(fā)?整個(gè)團(tuán)隊(duì)中衩椒,測(cè)試人員蚌父、開(kāi)發(fā)人員、項(xiàng)目經(jīng)理比例是多少毛萌?

·???????項(xiàng)目開(kāi)發(fā)了多長(zhǎng)時(shí)間苟弛?項(xiàng)目總的代碼量有多少?你的代碼量有多少阁将?

·???????項(xiàng)目采用了怎樣的開(kāi)發(fā)模型或開(kāi)發(fā)流程膏秫?項(xiàng)目的架構(gòu)是怎樣的?項(xiàng)目的技術(shù)選型是怎樣的做盅?

·???????你在項(xiàng)目中承擔(dān)了怎樣的職責(zé)缤削?是否經(jīng)常開(kāi)會(huì)或加班?項(xiàng)目完成后有哪些收獲或是經(jīng)驗(yàn)教訓(xùn)言蛇?

·???????項(xiàng)目中最困難的部分是什么僻他?如何解決團(tuán)隊(duì)開(kāi)發(fā)時(shí)遇到的各種沖突?

說(shuō)明:對(duì)于沒(méi)有實(shí)際項(xiàng)目經(jīng)驗(yàn)的腊尚,可以在前程無(wú)憂吨拗、智聯(lián)招聘、拉勾網(wǎng)等網(wǎng)站上搜索招聘Java程序員的公司婿斥,找到他們的官方網(wǎng)站了解他們做的項(xiàng)目劝篷,查看項(xiàng)目的詳細(xì)介紹,然后嘗試完成其中一部分功能民宿,最好請(qǐng)教一下高人看看自己的設(shè)計(jì)和代碼是否恰當(dāng)娇妓,這樣相當(dāng)于積累了一定的項(xiàng)目經(jīng)驗(yàn)。

面試題

??Java常見(jiàn)的面試題已經(jīng)總結(jié)成《Java面試題集》活鹰、《Java面試題全集》以及《面試編程題拾遺》等文章陸續(xù)發(fā)布在我的CSDN博客哈恰,各大公司的面試題我會(huì)繼續(xù)整理發(fā)布。

常見(jiàn)錯(cuò)誤

1.????只在計(jì)算機(jī)上練習(xí)

2.????不做行為面試題演練

3.????不做模擬面試訓(xùn)練

4.????試圖死記硬背答案

5.?不大聲說(shuō)出你的解題思路

6.????代碼不夠嚴(yán)謹(jǐn)

7.????不寫(xiě)測(cè)試代碼

8.????輕言放棄

面試時(shí)可以反問(wèn)面試官的問(wèn)題

1.????我注意到你們使用了X技術(shù)志群,請(qǐng)問(wèn)你們是如何解決Y問(wèn)題的着绷?

2.????為什么你們的產(chǎn)品使用了X技術(shù)而不是Y技術(shù)?據(jù)我所知锌云,X技術(shù)雖然有A荠医、BC等好處,但也存在DE問(wèn)題彬向,而Y技術(shù)可以解決DE問(wèn)題兼贡。

3.????我對(duì)您說(shuō)的X技術(shù)不是太熟悉,但我感覺(jué)它是一個(gè)不錯(cuò)的解決方案娃胆,您能多講講它的工作原理嗎遍希?

4.????你們團(tuán)隊(duì)是如何進(jìn)行項(xiàng)目規(guī)劃的?一周會(huì)有幾次例會(huì)缕棵?每周的代碼量大概是多少孵班?

5.????X問(wèn)題我能想到的解決方案目前就只有Y了,請(qǐng)問(wèn)您會(huì)怎么解決這個(gè)問(wèn)題招驴?

S.A.R.法則

S.A.R法則是指先描述問(wèn)題的場(chǎng)景篙程,然后解釋你采取的行動(dòng),最后陳述結(jié)果别厘。

算法題的五種解法

1.????舉例法:通過(guò)舉例子發(fā)現(xiàn)其中的一般規(guī)則虱饿。

例子:圓內(nèi)接三角形是銳角三角形的概率是多少?這是搜狗的一個(gè)面試題触趴,可以在圓上隨意畫(huà)三個(gè)點(diǎn)連接成三角形就可以知道答案了氮发。

2.????模式匹配法

例子:一個(gè)有序數(shù)組的元素經(jīng)過(guò)循環(huán)移動(dòng),元素的順序變成"3 4 5 6 1 2"冗懦。怎樣找到數(shù)組中最小的那個(gè)元素爽冕,假設(shè)數(shù)組中的元素各不相同。這個(gè)題目和折半查找看起來(lái)是那么相似披蕉,因此可以借鑒折半查找的算法颈畸,最小元素顯然出現(xiàn)在"mid > right"的轉(zhuǎn)折點(diǎn)。

3.????簡(jiǎn)化推廣法

說(shuō)明:簡(jiǎn)化問(wèn)題規(guī)模和數(shù)據(jù)類型没讲,然后再發(fā)現(xiàn)通用的解法眯娱。

4.????簡(jiǎn)單構(gòu)造法

例子:找出"abcde"的所有可能的排列組合。先考慮只有"a"的情況爬凑,再考慮"ab"的情況徙缴,以此類推。最終你可能會(huì)得到一個(gè)遞歸公式嘁信。這種方法往往會(huì)演變成遞歸法于样。

5.????數(shù)據(jù)結(jié)構(gòu)頭腦風(fēng)暴法

例子:隨機(jī)生成一些數(shù)字,并找出其中位數(shù)潘靖。這種問(wèn)題可以在頭腦中將你了解的數(shù)據(jù)結(jié)構(gòu)過(guò)一遍百宇,看看哪種是最合適的數(shù)據(jù)結(jié)構(gòu)。上面的題目可以建立兩個(gè)堆秘豹,一個(gè)大根堆和一個(gè)小根堆,較小的元素放在大根堆昌粤,較大的元素放在小根堆既绕,如果兩個(gè)堆不平衡啄刹,可以從其中一個(gè)堆取出元素放入另一個(gè)堆即可。最后中位數(shù)應(yīng)該是兩個(gè)堆的根之一凄贩。

錄用談判

1.????要理直氣壯的提出具體的待遇要求

2.????開(kāi)出比預(yù)期稍高的價(jià)碼

3.????不要只盯著薪水(很多公司更愿意就薪水之外的條件做出讓步)

4.????使用最合適的方法(可以嘗試在電話或E-mail中談判待遇)

自我評(píng)價(jià)

1.????學(xué)習(xí)能力(搞IT行業(yè)的人需要不斷的了解新的技術(shù)誓军、工具和方法)

2.????團(tuán)隊(duì)意識(shí)(相比個(gè)人英雄主義,IT行業(yè)更倡導(dǎo)團(tuán)隊(duì)合作)

3.????抗壓能力(很多IT企業(yè)的工作強(qiáng)度相對(duì)來(lái)說(shuō)還是比較大的)

分支詳解

面試技巧

1疲扎、背熟你的簡(jiǎn)歷

原因:面試的第一個(gè)問(wèn)題昵时,一般都是讓你簡(jiǎn)單介紹下你自己,或者介紹一下你最近的項(xiàng)目椒丧,而一個(gè)面試者壹甥,如果連自己的簡(jiǎn)歷都無(wú)法熟知,對(duì)里面提到的項(xiàng)目壶熏、技術(shù)都無(wú)法描述清楚的話句柠,我想沒(méi)有哪家公司會(huì)接受這樣的,哪怕你是超級(jí)人才棒假,你自我表述不行溯职,估計(jì)也會(huì)為此頭疼,所以帽哑,切記:一定要背好自己的簡(jiǎn)歷谜酒,不要求你能全部記下,至少要熟記你最近所待過(guò)的兩家公司妻枕,這兩家公司里面你做過(guò)的項(xiàng)目僻族,你負(fù)責(zé)的模塊,項(xiàng)目里面用到的技術(shù)以及相對(duì)應(yīng)的技術(shù)實(shí)現(xiàn)方案(這個(gè)尤為重要)佳头。

2蒜撮、深入了解并熟記部分Java基礎(chǔ)知識(shí)

原因:大部分公司無(wú)論面試初級(jí)還是高級(jí),無(wú)論是筆試還是面試鹰祸,都會(huì)問(wèn)到一系列基礎(chǔ)題巩割,這些基礎(chǔ)題大概涵括jvm、字符串亭珍、集合敷钾、線程等等,如果說(shuō)每一個(gè)讓你死記硬背你肯定記不住肄梨,那么就是理解中記憶了阻荒,拿jvm來(lái)說(shuō) ,如果讓你談?wù)勀銓?duì)jvm的理解众羡, 那么你首先得知道JVM有哪些結(jié)構(gòu)組成侨赡,每個(gè)結(jié)構(gòu)用來(lái)做什么的,然后考慮一個(gè)Java對(duì)象從創(chuàng)建到回收,如何途徑JVM這些結(jié)構(gòu)的羊壹。如果你從這些方面來(lái)綜合記憶蓖宦,相信事半功倍,并且你理解的更透徹油猫。

至于如果讓你談集合稠茂,舉例List集合下面ArryList、LinkedList情妖、Vector等集合的區(qū)別睬关,那么同樣的方法,你需要理解每一個(gè)的結(jié)構(gòu)組成是什么毡证,你才能知道他有什么作用电爹,這樣你在平時(shí)的用法上會(huì)更精煉,而且在面試過(guò)程中情竹,也不至于啞口無(wú)言藐不。

3、保持自信心和沉重冷靜的心態(tài)

原因:面試過(guò)程中秦效,自信是少不了的雏蛮,相信你可以, 面試的路上可以自己對(duì)自己說(shuō)一句: I belive I can ! 反正我就是這么做的阱州,自我的心里暗示吧挑秉,其實(shí)面對(duì)面試官的時(shí)候,你自信的狀態(tài)也會(huì)讓面試官覺(jué)得你是個(gè)很有底氣的人苔货,至少?gòu)母杏X(jué)上會(huì)給你打個(gè)高分犀概。

另外還有就是保持沉重冷靜,如果是讓你提供技術(shù)方案或者說(shuō)說(shuō)某個(gè)技術(shù)原理夜惭,沒(méi)必要一緊張一咕嚕的什么都說(shuō)姻灶,你可以對(duì)面試官說(shuō):我先想想,然后自己組裝記憶中的知識(shí)诈茧,組裝下語(yǔ)言产喉,有條理的說(shuō)出來(lái),這樣能更好的表現(xiàn)你的才能敢会,不是嗎曾沈? 面試誰(shuí)都會(huì)緊張,我也會(huì)緊張鸥昏,有時(shí)候明明記得的知識(shí)點(diǎn)忘了塞俱,沒(méi)關(guān)系,大膽的說(shuō)忘了吏垮,或者直接說(shuō)不知道障涯。 要記住罐旗,有部分不知道沒(méi)關(guān)系,如果全都知道唯蝶,那你應(yīng)該是CTO級(jí)別了(開(kāi)個(gè)玩笑)尤莺。

4、盡量記住面試過(guò)程中你回答不出來(lái)或者存在不妥的問(wèn)題

原因:面試失敗了沒(méi)關(guān)系生棍,畢竟每個(gè)公司的要求不一樣,問(wèn)的問(wèn)題和你擅長(zhǎng)的方面可能有所出入媳谁,但是請(qǐng)記住一點(diǎn):面試過(guò)程中那些你回答不出來(lái)問(wèn)題涂滴,或者你自己感覺(jué)回答不太準(zhǔn)確的問(wèn)題,自己記下來(lái)晴音,如果不會(huì)的柔纵,你可以當(dāng)場(chǎng)問(wèn)問(wèn)面試官有沒(méi)有好的解答,如果面試官不愿意告訴你(一般是基礎(chǔ)方面面試官就懶得答你)锤躁,那么你就自己回家慢慢查資料搁料,如果是某些特定的技術(shù),也可以自己寫(xiě)寫(xiě)案例什么的系羞,畢竟知識(shí)點(diǎn)就那么多郭计,問(wèn)題百變,原理不變椒振,面試也是一個(gè)學(xué)習(xí)知識(shí)的過(guò)程昭伸,讓你了解大部分公司目前需要或者要求的技術(shù)。這次不知道澎迎,下次就知道了庐杨。

5、去面試之前夹供,最好先了解你要去面試公司的情況

原因:俗話說(shuō)灵份,知己知彼,百戰(zhàn)不殆哮洽,面試就是一場(chǎng)戰(zhàn)斗填渠,你需要了解你面試公司基本情況,包括崗位要求袁铐,這樣你就能大概知道你需要面試的這家公司的技術(shù)要求情況揭蜒。 為何讓你去了解這家公司的主營(yíng)產(chǎn)品和項(xiàng)目呢,就是讓你大概了解這家公司的一個(gè)技術(shù)架構(gòu)的情況剔桨,包括你可能對(duì)他們的一種實(shí)現(xiàn)方式提出質(zhì)疑和疑惑屉更,相信面試官很愿意幫你解答這些問(wèn)題的。這樣你既圖了表現(xiàn)洒缀,也學(xué)到了知識(shí)瑰谜,何樂(lè)而不為欺冀。

6、合理安排你的面試時(shí)間

原因:估計(jì)很多人都不理解這個(gè)萨脑,可能大部分的人對(duì)于如何安排面試時(shí)間比較迷茫隐轩,隨意安排〔吃纾可是這里有個(gè)技巧职车,如果同時(shí)有多個(gè)面試機(jī)會(huì),你把你最想去的公司放到最末尾去面試鹊杖,這樣你經(jīng)歷過(guò)了前面的這些公司篩選悴灵,如果成功了是個(gè)機(jī)會(huì),如果沒(méi)成功骂蓖,也是為最后做鋪墊积瞒。

不過(guò)這里就需要考慮兩點(diǎn):1、你需要記住你投簡(jiǎn)歷的公司和基本情況(這說(shuō)明你不是海投的) 2登下、如果記不住茫孔,那么可以先應(yīng)答一個(gè)時(shí)間,后續(xù)了解公司信息之后被芳,通過(guò)郵件或者其他方式與其約定缰贝,調(diào)整面試時(shí)間。而且建議安排一天的面試公司不要超過(guò)兩家筐钟,最好的是上午一家揩瞪,下午一家,這樣你能有充足的時(shí)間調(diào)整狀態(tài)篓冲。

Java基礎(chǔ)

1.數(shù)組中的排序問(wèn)題(筆試或者機(jī)試李破,前者可能性更大)

2.面向?qū)ο蟮睦斫?/b>

面向?qū)ο笾饕兴膫€(gè)特性:

封裝、抽象壹将、繼承和多態(tài)嗤攻。

封裝:在面向?qū)ο笳Z(yǔ)言中,封裝特性是由類來(lái)體現(xiàn)的诽俯,我們將現(xiàn)實(shí)生活中的一類實(shí)體定義成類妇菱,其中包括屬性和行為(在Java中就是方法),就好像人類暴区,可以具有name,sex,age等屬性闯团,同時(shí)也具有eat(),sleep()等行為,我們?cè)谛袨橹袑?shí)現(xiàn)一定的功能仙粱,也可操作屬性房交,這是面向?qū)ο蟮姆庋b特性;

抽象:抽象就是將一類實(shí)體的共同特性抽象出來(lái)伐割,封裝在一個(gè)抽象類中候味,所以抽象在面向?qū)ο笳Z(yǔ)言是由抽象類來(lái)體現(xiàn)的刃唤。比如鳥(niǎo)就是一個(gè)抽象實(shí)體,因?yàn)槌橄髮?shí)體并不是一個(gè)真正的對(duì)象白群,它的屬性還不能完全描述一個(gè)對(duì)象尚胞,所以在語(yǔ)言中體現(xiàn)為抽象類不能實(shí)例化;

繼承:繼承就像是我們現(xiàn)實(shí)生活中的父子關(guān)系帜慢,兒子可以遺傳父親的一些特性笼裳,在面向?qū)ο笳Z(yǔ)言中,就是一個(gè)類可以繼承另一個(gè)類的一些特性粱玲,從而可以代碼重用侍咱,其實(shí)繼承體現(xiàn)的是is-a關(guān)系,父類同子類在本質(zhì)上還是一類實(shí)體密幔;

多態(tài):多態(tài)就是通過(guò)傳遞給父類對(duì)象引用不同的子類對(duì)象從而表現(xiàn)出不同的行為

3.集合相關(guān)的問(wèn)題

比如:Set與List的區(qū)別。ArrayList與Linkedlist區(qū)別撩轰。HashMap與HashTable區(qū)別胯甩。搞清楚每個(gè)集合對(duì)象的特性就歐了。

Map或者HashMap的儲(chǔ)存原理

答:HashMap是由數(shù)組+鏈表的一個(gè)結(jié)構(gòu)組成堪嫂,具體參照:HashMap的實(shí)現(xiàn)原理偎箫。

4.多線程問(wèn)題

多線程啟動(dòng)方式,以及產(chǎn)生死鎖的原因和解決辦法皆串,樂(lè)觀鎖悲觀鎖淹办,線程同步,創(chuàng)建方法jdk1.5之前/之后【多線程問(wèn)題不是很常問(wèn)恶复,有精力就復(fù)習(xí)這塊內(nèi)容】

SimpleDataFormat是非線程安全的怜森,如何更好的使用而避免風(fēng)險(xiǎn)呢?

答:關(guān)于SimpleDateFormat安全的時(shí)間格式化線程安全問(wèn)題谤牡。

5.IO流

了解常見(jiàn)的幾個(gè)流對(duì)象以及基本的流操作即可副硅,被機(jī)試的可能性比較小。

6.數(shù)據(jù)結(jié)構(gòu)

例如:集合翅萤,枚舉

7.設(shè)計(jì)模式

單例恐疲,工廠,MVC等

如何看待設(shè)計(jì)模式套么,并簡(jiǎn)單說(shuō)說(shuō)你對(duì)觀察者模式的理解

設(shè)計(jì)模式有神馬用

觀察者模式類圖及實(shí)現(xiàn)培己。

8.排序算法

冒泡,快速胚泌,基數(shù)省咨,插入,希爾等

9.JVM??JVM結(jié)構(gòu)原理诸迟、GC工作機(jī)制詳情

GC回收茸炒,調(diào)優(yōu)愕乎,內(nèi)存溢出

答:具體參照:JVM結(jié)構(gòu)、GC工作機(jī)制詳解壁公,說(shuō)到GC感论,記住兩點(diǎn):1、GC是負(fù)責(zé)回收所有無(wú)任何引用對(duì)象的內(nèi)存空間紊册。 注意:垃圾回收回收的是無(wú)任何引用的對(duì)象占據(jù)的內(nèi)存空間而不是對(duì)象本身比肄,2、GC回收機(jī)制的兩種算法囊陡,a芳绩、引用計(jì)數(shù)法 b、可達(dá)性分析算法( 這里的可達(dá)性撞反,大家可以看基礎(chǔ)2 Java對(duì)象的什么周期)妥色,至于更詳細(xì)的GC算法介紹,大家可以參考:Java GC機(jī)制算法遏片。

10嘹害、Java對(duì)象的生命周期

答:創(chuàng)建階段 、 應(yīng)用階段 吮便、不可見(jiàn)階段 笔呀、不可達(dá)階段 、收集階段 髓需、終結(jié)階段许师、 對(duì)象空間重新分配階段等等,具體參照:Java 對(duì)象的生命周期僚匆。

11微渠、JavaObject類中有哪些方法?

答:Object有哪些方法咧擂。

JavaWeb

1.http協(xié)議

(定義敛助、常見(jiàn)的請(qǐng)求頭以及響應(yīng)頭<功能>、狀態(tài)碼)

HTTP協(xié)議屋确,GET和POST 的區(qū)別

2.Tomcat

(目錄結(jié)構(gòu)<存放的內(nèi)容以及配置文件里面能做哪些工作>纳击、常見(jiàn)配置;有能力者可以了解一下tomcat的原理<啟動(dòng)加載問(wèn)題>)

3.jdbc

(編程步驟、與hibernate以及mybatis的區(qū)別)

4.servlet

(概念的理解攻臀;生命周期焕数、線程安全問(wèn)題、接口相關(guān)類型刨啸、體系結(jié)構(gòu)<區(qū)別>堡赔、request以及response的用途、servletContext對(duì)象的功能设联、編碼以及路徑問(wèn)題)

5.filter

(生命周期善已、常見(jiàn)應(yīng)用灼捂、dofilter里面的參數(shù)、應(yīng)用場(chǎng)景)

6.jsp

(隱式對(duì)象换团、常見(jiàn)標(biāo)簽<指令悉稠、動(dòng)作>、EL以及JSTL)

內(nèi)置對(duì)象

名稱類型描述

outjavax.servlet.jsp.JspWriter用于頁(yè)面輸出

requestjavax.servlet.http.HttpServletRequest得到用戶請(qǐng)求信息艘包,

responsejavax.servlet.http.HttpServletResponse服務(wù)器向客戶端的回應(yīng)信息

configjavax.servlet.ServletConfig服務(wù)器配置的猛,可以取得初始化參數(shù)

sessionjavax.servlet.http.HttpSession用來(lái)保存用戶的信息

applicationjavax.servlet.ServletContext所有用戶的共享信息

pagejava.lang.Object指當(dāng)前頁(yè)面轉(zhuǎn)換后的Servlet類的實(shí)例

pageContextjavax.servlet.jsp.PageContextJSP的頁(yè)面容器

exceptionjava.lang.Throwable表示JSP頁(yè)面所發(fā)生的異常,在錯(cuò)誤頁(yè)中才起作用

作用域范圍

PageContext常量名描述作用域名稱域?qū)ο箢愋?/p>

PageScope當(dāng)前頁(yè)面中有效pageContextPageContext

RequestScope一次請(qǐng)求范圍requestHttpServletRequest

SessionScope一次會(huì)話范圍sessionHttpSession

ApplicationScope應(yīng)用范圍applicationServletContext

靜態(tài)包含/動(dòng)態(tài)包含

7.cookie/session

(概念的理解想虎;生命周期卦尊,session創(chuàng)建的時(shí)期,相關(guān)方法的使用)

8.Xml定義文檔的形式舌厨,都有什么區(qū)別

a: 兩種定義形式?dtd(文檔類型定義)??schema(XML模式)岂却;

b: XML Schema和DTD都用于文檔驗(yàn)證,但二者還有一定區(qū)別裙椭;

本質(zhì)區(qū)別:schema本身是xml的淌友,可以被XML解析器解析(這也是從DTD上發(fā)展schema的根本目的)。另外:

XML Schema是內(nèi)容開(kāi)放模型骇陈,可擴(kuò)展,功能性強(qiáng)瑰抵;而DTD可擴(kuò)展性差你雌;

XML Schema支持豐富的數(shù)據(jù)類型,而DTD不支持元素的數(shù)據(jù)類型二汛,對(duì)屬性的類型定義也很有限婿崭;

XML Schema支持命名空間機(jī)制,而DTD不支持肴颊;

XML Schema可針對(duì)不同情況對(duì)整個(gè)XML文檔或文檔局部進(jìn)行驗(yàn)證氓栈;而DTD缺乏這種靈活性;

XML Schema完全遵循XML規(guī)范婿着,符合XML語(yǔ)法授瘦,可以和DOM結(jié)合使用,功能強(qiáng)大竟宋;而DTD語(yǔ)法本身有自身的語(yǔ)法和要求提完,難以學(xué)習(xí);

c:有DOM(文檔對(duì)象模型),SAX(Simple API for XML),STAX等

DOM:文檔驅(qū)動(dòng)丘侠,處理大型文件時(shí)其性能下降的非常厲害徒欣。這個(gè)問(wèn)題是由DOM的樹(shù)結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多蜗字,而且DOM必須在解析文件之前把整個(gè)文檔裝入內(nèi)存,適合對(duì)XML的隨機(jī)訪問(wèn)

SAX:不同于DOM,SAX是事件驅(qū)動(dòng)型的XML解析方式打肝。它順序讀取XML文件脂新,不需要一次全部裝載整個(gè)文件。當(dāng)遇到像文件開(kāi)頭粗梭,文檔結(jié)束争便,或者標(biāo)簽開(kāi)頭與標(biāo)簽結(jié)束時(shí),它會(huì)觸發(fā)一個(gè)事件楼吃,用戶通過(guò)在其回調(diào)事件中寫(xiě)入處理代碼來(lái)處理XML文件始花,適合對(duì)XML的順序訪問(wèn),且是只讀的孩锡。當(dāng)前瀏覽器不支持SAX

SAXParserFactory?factory=?SAXParserFactory.newInstance();

SAXParser saxparser= factory.newSAXParser();//創(chuàng)建SAX解析器

MyHandler handler=new MyHandler();//創(chuàng)建事件處理器

saxParser.parse(new File(“Sax_1.xml”),handler);//綁定文件和事件處理者

STAX:Streaming API for XML (StAX) Streaming API for XML (StAX)

是用?Java? 語(yǔ)言處理 XML 的最新標(biāo)準(zhǔn)酷宵。StAX 與其他方法的區(qū)別就在于應(yīng)用程序能夠把 XML 作為一個(gè)事件流來(lái)處理。StAX 允許應(yīng)用程序代碼把這些事件逐個(gè)拉出來(lái)躬窜,而不用提供在解析器方便時(shí)從解析器中接收事件的處理程序浇垦。

框架

1.struts2

(action相關(guān)的問(wèn)題<書(shū)寫(xiě)方式[區(qū)別]、接受請(qǐng)求參數(shù)的方式荣挨、相關(guān)配置男韧、訪問(wèn)servletAPI的方式>;值棧相 關(guān)問(wèn)題<定義默垄、內(nèi)部結(jié)構(gòu)此虑、如何獲取值棧對(duì)象、EL為什么能訪問(wèn)值棧中的數(shù)據(jù)>口锭;struts2與springMVC的區(qū)別朦前;攔截器與過(guò)濾器的 區(qū)別;struts2工作原理<執(zhí)行流程>)

2.hibernate

(核心思想要了解鹃操;開(kāi)發(fā)流程<加載文件的過(guò)程>韭寸;查詢方式;如何優(yōu)化荆隘;sql與hql的區(qū)別恩伺;update與 saveOrUpdate的區(qū)別;get和load的區(qū)別椰拒;Java對(duì)象三種狀態(tài)的特征以及轉(zhuǎn)換晶渠、核心API、一級(jí)緩存和二級(jí)緩存燃观、延遲加載)

3.spring

(springIOC和DI乱陡;生命周期;Bean注入屬性的方式仪壮;aop極其相關(guān)名詞解釋憨颠;核心類;applicationContext與beanFactory的區(qū)別;bean實(shí)例化有哪些方式)

4.springMVC

(工作流程爽彤;與struts2的區(qū)別养盗;亂碼問(wèn)題如何處理;各組件的擴(kuò)展類型)

5.mybatis

(與jdbc/hibernate的區(qū)別适篙;)

腳本

1.JavaScript核心對(duì)象

2.瀏覽器BOM對(duì)象

3.文檔對(duì)象模型DOM

4.常見(jiàn)事件

5.Ajax編程

(web交互2種方式的對(duì)比)

6.傳統(tǒng)Ajax編程的步驟以及從服務(wù)器端返回的數(shù)據(jù)格式(之間的差別)

7.JSON數(shù)據(jù)格式的轉(zhuǎn)換操作

8.jQuery選擇器

9.jQuery的Ajax編程(常見(jiàn)方法)

10.其余的問(wèn)題都是一些筆試題往核,讓你直接寫(xiě)javascript代碼實(shí)現(xiàn)某一功能

數(shù)據(jù)庫(kù)緩存

數(shù)據(jù)庫(kù)這一塊幾乎都是一些概念性的問(wèn)答題(存儲(chǔ)過(guò)程、函數(shù)嚷节、事務(wù)聂儒、索引、觸發(fā)器硫痰、視圖衩婚、游標(biāo)以及一些優(yōu)化操作),筆試100%會(huì)出現(xiàn),一般考察的都是多表聯(lián)合查詢

比如:

1效斑、當(dāng)數(shù)據(jù)表中A非春、B字段做了組合索引,那么單獨(dú)使用A或單獨(dú)使用B會(huì)有索引效果嗎缓屠?(使用like查詢?nèi)绾斡兴饕Ч?/p>

答:看A奇昙、B兩字段做組合索引的時(shí)候,誰(shuí)在前面敌完,誰(shuí)在后面储耐,如果A在前,那么單獨(dú)使用A會(huì)有索引效果滨溉,單獨(dú)使用B則沒(méi)有什湘,反之亦然。同理业踏,使用like模糊查詢時(shí),如果只是使用前面%涧卵,那么有索引效果勤家,如果使用雙%號(hào)匹配,那么則無(wú)索引效果柳恐。

2伐脖、數(shù)據(jù)庫(kù)存儲(chǔ)日期格式時(shí),如何考慮時(shí)區(qū)轉(zhuǎn)換問(wèn)題乐设?

答:使用TimeStamp , 原因參照:Java編程中遇到的時(shí)區(qū)轉(zhuǎn)換問(wèn)題讼庇。

3、一條sql執(zhí)行過(guò)長(zhǎng)的時(shí)間近尚,你如何優(yōu)化蠕啄,從哪些方面?

答:

查看sql是否涉及多表的聯(lián)表或者子查詢,如果有歼跟,看是否能進(jìn)行業(yè)務(wù)拆分和媳,相關(guān)字段冗余或者合并成臨時(shí)表(業(yè)務(wù)和算法的優(yōu)化);

涉及鏈表的查詢哈街,是否能進(jìn)行分表查詢留瞳,單表查詢之后的結(jié)果進(jìn)行字段整合;

如果以上兩種都不能操作骚秦,非要鏈表查詢她倘,那么考慮對(duì)相對(duì)應(yīng)的查詢條件做索引。加快查詢速度作箍;

針對(duì)數(shù)量大的表進(jìn)行歷史表分離(如交易流水表)硬梁;

數(shù)據(jù)庫(kù)主從分離,讀寫(xiě)分離蒙揣,降低讀寫(xiě)針對(duì)同一表同時(shí)的壓力靶溜,至于主從同步,MySQL有自帶的binlog實(shí)現(xiàn) 主從同步懒震;

explain分析sql語(yǔ)句罩息,查看執(zhí)行計(jì)劃,分析索引是否用上个扰,分析掃描行數(shù)等等瓷炮;

查看mysql執(zhí)行日志,看看是否有其他方面的問(wèn)題递宅;

個(gè)人理解:從根本上來(lái)說(shuō)娘香,查詢慢是占用mysql內(nèi)存比較多,那么可以從這方面去酌手考慮办龄。

? 4烘绽、集群環(huán)境中,session如何實(shí)現(xiàn)共享

答:1俐填、Java集群之session共享2安接、session多服務(wù)器共享方案,還有一種方案就是使用一個(gè)固定的服務(wù)器專門保持session英融,其他服務(wù)器共享盏檐。

? 5、分布式驶悟、集群環(huán)境中胡野,緩存如何刷新,如何保持同步痕鳍?

答:A硫豆、緩存如何刷新?

1、定時(shí)刷新 2够庙、主動(dòng)刷新覆蓋恭应,每個(gè)緩存框架都有自帶的刷新機(jī)制,或者說(shuō)緩存失效機(jī)制耘眨,就拿Redis和 Ehcache舉例昼榛, 他們都有自帶的過(guò)期機(jī)制,另外主動(dòng)刷新覆蓋時(shí)剔难,只需獲取對(duì)應(yīng)的key進(jìn)行數(shù)據(jù)的覆蓋即可胆屿。

B、緩存如何保持同步偶宫?

?這個(gè)redis有自帶的集群同步機(jī)制非迹,即復(fù)制功能,具體參考:基于Redis分布式緩存實(shí)現(xiàn)纯趋,Ehcache也有分布式緩存同步的配置憎兽,只需要配置不同服務(wù)器地址即可,參照:Ehcache分布式緩存同步吵冒。

人事相關(guān)

1.自我介紹(注重的是你之前在公司里面工作內(nèi)容纯命,特別是最近在公司里面做的項(xiàng)目<回答思路參考項(xiàng)目相關(guān)問(wèn)題一>)

2.簡(jiǎn)單的介紹一下上一家公司的情況/評(píng)價(jià)

3.你為什么來(lái)北京工作,怎樣看待跳槽痹栖?

4.你對(duì)我們公司了解嗎亿汞?

5.你如果有幸進(jìn)入我們公司,有什么規(guī)劃嗎揪阿?

6.你上一家公司的薪資大概是多少疗我?有哪些組成部分?

7.你有沒(méi)有投其它公司南捂?如果其它公司也給了offer吴裤,你會(huì)如何抉擇?

8.你有對(duì)象嗎溺健?打算什么時(shí)候結(jié)婚生孩子麦牺?

9.你對(duì)薪資待遇有什么要求?能再低一點(diǎn)嗎矿瘦?

10.你還有什么問(wèn)題要問(wèn)我嗎枕面?

項(xiàng)目相關(guān)

?1.請(qǐng)介紹一下你最近做的這一個(gè)項(xiàng)目吧

【思路:項(xiàng)目給誰(shuí)做的愿卒、項(xiàng)目涉及的領(lǐng)域缚去、系統(tǒng)的架構(gòu)(功能&技術(shù))、系統(tǒng)的用途琼开、系統(tǒng)的部署易结、使用了哪些比較新穎的技術(shù)】

??2.談?wù)勀銓?duì)電商行業(yè)的了解

【思路:電商行業(yè)的發(fā)展、行業(yè)技術(shù)特點(diǎn)、行業(yè)的一些概念】

?3.你這個(gè)項(xiàng)目大概有哪些功能搞动,你負(fù)責(zé)了哪些核心功能躏精?

【擁有的功能盡可能說(shuō)多一點(diǎn),建議10個(gè)左右套鹅,自己負(fù)責(zé)的3個(gè)大(如商品管理防楷、訂單告组、購(gòu)物車),其余的都是其他組員開(kāi)發(fā)的任務(wù)】

?4.談?wù)剎x(具體的瞭吃,比如商品管理、訂單涣旨、購(gòu)物車)模塊/功能的實(shí)現(xiàn)思路歪架?實(shí)現(xiàn)的過(guò)程中涉及到了哪些技術(shù),這些技術(shù)能介紹下嗎霹陡?

5.你們公司有多少人和蚪?有測(cè)試嗎?有美工嗎烹棉?整個(gè)項(xiàng)目組人員配置是怎么樣的攒霹?項(xiàng)目開(kāi)發(fā)的流程大概是什么樣子的?

【檢驗(yàn)是否有工作經(jīng)驗(yàn)的一個(gè)問(wèn)題】

6.這個(gè)項(xiàng)目使用了什么構(gòu)建工具沒(méi)有峦耘?有的話剔蹋,多模塊之間是如何劃分的?為什么要這么劃分辅髓?

? 7.在這個(gè)項(xiàng)目中是如何設(shè)計(jì)商品規(guī)格的泣崩?

? 8.這個(gè)系統(tǒng)中你是如何實(shí)現(xiàn)跨系統(tǒng)調(diào)用的?

??

? 9.在這個(gè)項(xiàng)目中洛口,CMS系統(tǒng)是如何設(shè)計(jì)的矫付,簡(jiǎn)單的說(shuō)一下設(shè)計(jì)思路

10.在這個(gè)項(xiàng)目中,你們主要使用什么樣的數(shù)據(jù)格式來(lái)進(jìn)行數(shù)據(jù)的傳輸?shù)模?/b>

11.單點(diǎn)系統(tǒng)的設(shè)計(jì)思想你了解嗎第焰?他在系統(tǒng)架構(gòu)中的作用是什么买优?位置如何?

12.你們這個(gè)項(xiàng)目中訂單ID是怎么生成的挺举?我們公司最近打算做一個(gè)電商項(xiàng)目杀赢,如果讓你設(shè)計(jì)這塊,你會(huì)考慮哪些問(wèn)題湘纵?

13.各個(gè)服務(wù)器的時(shí)間不統(tǒng)一怎么辦脂崔?

? 14.你們線上部署時(shí)什么樣的,能畫(huà)一下嗎梧喷?

15.你們生產(chǎn)環(huán)境的服務(wù)器有多少臺(tái)砌左?

??

? ?16.你們使用什么做支付的脖咐?如果使用易寶做支付,請(qǐng)求超時(shí)了怎么處理汇歹?? ?

?

17.你剛才不是說(shuō)付款成功后易寶會(huì)有數(shù)據(jù)返回嗎屁擅?如果付款后易寶沒(méi)有返回,或者返回超時(shí)了产弹,但是錢又已經(jīng)扣了派歌,你怎么辦?

? ?18.你們?cè)趺醋鐾丝罟δ艿奶瞪冢嚅L(zhǎng)時(shí)間才能把錢退回給用戶硝皂?

? ?19.你購(gòu)物車存cookie里邊可以實(shí)現(xiàn)不登錄就可以使用購(gòu)物車,那么我現(xiàn)在沒(méi)有登錄把商品存購(gòu)物車了作谭,然后登錄了稽物,?然后我換臺(tái)電腦并且登錄了還能不能看見(jiàn)我購(gòu)物車的信息?如果看不到怎么做到cookie同步折欠,就是在另外一臺(tái)電腦上可以看到購(gòu)物車信息

? ?20.如果用戶一直向購(gòu)物車添加商品怎么辦贝或?并且他添加一次你查詢一次數(shù)據(jù)庫(kù)?互聯(lián)網(wǎng)上用戶那么多锐秦,這樣會(huì)對(duì)數(shù)據(jù)庫(kù)造成很大壓力你怎么辦咪奖?

? ?21.購(gòu)物車的設(shè)計(jì)細(xì)節(jié)問(wèn)題

其他技術(shù)

? ?1.權(quán)限控制

(一般情況,在公司必須有一定工作經(jīng)驗(yàn)的開(kāi)發(fā)者才會(huì)被分配該功能模塊的開(kāi)發(fā)酱床,這意味著學(xué)員在剛開(kāi)始參加工作的那個(gè)項(xiàng)目里面絕對(duì)不能寫(xiě)的內(nèi)容羊赵。)?這里一般都會(huì)提及shiro技術(shù),在這塊需要掌握shiro相關(guān)的幾個(gè)組件以及他們的調(diào)用關(guān)系扇谣,然后就是權(quán)限設(shè)計(jì)的幾張數(shù)據(jù)庫(kù)表(表之間的關(guān)系以及每張表里面的重要字段)

? ?2.搜索系統(tǒng)

(普通的查詢會(huì)讓面試官問(wèn)及效率問(wèn)題昧捷,那么勢(shì)必要提到全文檢索技術(shù),由于剛學(xué)不是很熟罐寨,根據(jù)自己掌握的情況進(jìn)行選擇)? ?

? 3.瀏覽器跨域問(wèn)題

(前臺(tái)系統(tǒng)調(diào)用可以使用jsonp來(lái)實(shí)現(xiàn)瀏覽器跨域問(wèn)題靡挥,去年有學(xué)員花幾個(gè)小時(shí)學(xué)習(xí)這個(gè),僅憑此技術(shù)入職8K鸯绿。)

? 4.webservice

(該技術(shù)已有替代技術(shù)跋破,如果不會(huì),可以不用花時(shí)間去復(fù)習(xí))

? 5.Linux

(水太深瓶蝴,只談自己在項(xiàng)目中就部署的時(shí)候用了一下即可)

? 6.redis

(根據(jù)自己的能力看是否需要提及次技術(shù)毒返,畢竟購(gòu)物車的實(shí)現(xiàn)方式比較多。)

設(shè)計(jì)方案相關(guān)

面試還會(huì)問(wèn)到一些關(guān)于設(shè)計(jì)方案相關(guān)的問(wèn)題舷手,比如:

1拧簸、你的接口服務(wù)數(shù)據(jù)被人截包了,你如何防止數(shù)據(jù)惡意提交聚霜?

答:我們可以在接口傳輸參數(shù)里面設(shè)置一個(gè)業(yè)務(wù)編號(hào)狡恬,這個(gè)編號(hào)用來(lái)區(qū)分是否重復(fù)提交。這樣即使數(shù)據(jù)被抓包了蝎宇,對(duì)方也無(wú)法區(qū)分每個(gè)字段你的含義弟劲,這時(shí),這個(gè)業(yè)務(wù)編號(hào)的作用就來(lái)了姥芥。

2兔乞、假設(shè)服務(wù)器經(jīng)常宕機(jī),你從哪些方面去排查問(wèn)題凉唐?

答:這個(gè)就留個(gè)各位看官補(bǔ)充了庸追。

總而言之該看的還是得看,還學(xué)的還是得學(xué)台囱。再次強(qiáng)調(diào)淡溯,基礎(chǔ)很重要!面試技巧同樣很重要簿训,還是那句話:祝愿各位看官都能找到心儀的工作吧~~

另外咱娶,奉勸大家不要頻繁跳槽,這些知識(shí)點(diǎn)能提升固然好强品,不要盲目跳槽膘侮,找工作很累的,而且沒(méi)有哪家公司喜歡頻繁跳槽的員工的榛。

跳槽應(yīng)該學(xué)的技術(shù)

互聯(lián)網(wǎng)產(chǎn)品琼了、大型企業(yè)級(jí)項(xiàng)目常會(huì)用到的:

1.并發(fā)處理技術(shù)。具體到Java上通常是涉及java.util.concurrent夫晌、并發(fā)鎖機(jī)制雕薪、NIO等方面,當(dāng)然最近比較火爆的Netty框架也可以作為高并發(fā)處理的備選方案之一晓淀,這需要對(duì)Java的線程調(diào)度機(jī)制有著比較深的理解蹦哼。不過(guò)這些可能會(huì)涉及并發(fā)控制的對(duì)象(比如reentrantlock等)只能存在于一個(gè)JVM里的問(wèn)題,一旦系統(tǒng)規(guī)模大到需要部署多個(gè)JVM來(lái)處理并發(fā)的情況要糊,則需要采用共享session的技術(shù)(比如spring-session)纲熏,或者盡可能將系統(tǒng)后臺(tái)設(shè)計(jì)為無(wú)狀態(tài)的服務(wù),這需要對(duì)RESTful有著較深的理解锄俄。

2.高可用局劲、負(fù)載均衡技術(shù)∧淘互聯(lián)網(wǎng)產(chǎn)品鱼填、企業(yè)級(jí)應(yīng)用通常要求一年里的Downtime控制在很小的范圍內(nèi),這需要足夠的高可用和負(fù)載均衡架構(gòu)來(lái)支撐毅戈,這個(gè)一般和Java技術(shù)本身沒(méi)太大關(guān)系苹丸,但卻是一名初級(jí)程序員向高級(jí)程序員甚至是架構(gòu)師CIO進(jìn)階的必備技術(shù)愤惰,因此可以適當(dāng)了解一下Nginx、HAProxy等對(duì)這方面的支持赘理。另外現(xiàn)在最“時(shí)髦”的做法是將應(yīng)用docker化宦言,配合ETCD、kubernetes等工具在容器的層面上實(shí)現(xiàn)高可用和負(fù)載均衡商模,當(dāng)然這需要看實(shí)際的需求奠旺,最時(shí)髦的不見(jiàn)得是最適用的,要考慮構(gòu)建成本施流。

3.緩存技術(shù)响疚。緩存應(yīng)該是大型系統(tǒng)中或高并發(fā)條件下提高響應(yīng)速度的亙古不變的真理(雖然也看到過(guò)淘寶搜索商品功能采用的大數(shù)據(jù)處理技術(shù)實(shí)現(xiàn)的零緩存的文章,但能達(dá)到淘寶的體量和技術(shù)水平一般不太可能)瞪醋,這方面的工具太多了忿晕,ehcache、memcached银受、redis……從Java的角度來(lái)講杏糙,需要了解的一是Java對(duì)這些工具的連接器,二是緩存技術(shù)背后的JSR-107標(biāo)準(zhǔn)蚓土,可以參考spring-cache的實(shí)現(xiàn)宏侍,閱讀一下源碼加深理解。

4.異步處理技術(shù)蜀漆。這通常也是抵消高并發(fā)的處理手段之一谅河,從Java的角度看最簡(jiǎn)單的異步處理就是新啟動(dòng)一個(gè)異步線程,這同樣也需要對(duì)Java的線程調(diào)度有所了解确丢,當(dāng)然也可使用Spring中的@Async之類的也可以簡(jiǎn)單實(shí)現(xiàn)異步線程的處理绷耍。如果是非常消耗資源的業(yè)務(wù)處理,簡(jiǎn)單的異步線程是滿足不了需求的鲜侥,這就需要一些消息中間件來(lái)做這些異步處理了褂始,消息中間件有很多,activemq描函、rabbitmq崎苗、kafka……需要了解的是Java對(duì)這些中間件的連接器。不過(guò)異步處理中最關(guān)鍵的是事務(wù)保證的問(wèn)題舀寓,這可能需要對(duì)事務(wù)的兩步提交有所了解胆数。

點(diǎn)擊“閱讀全文”,查看詳情

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末互墓,一起剝皮案震驚了整個(gè)濱河市必尼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌篡撵,老刑警劉巖判莉,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豆挽,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡券盅,警方通過(guò)查閱死者的電腦和手機(jī)帮哈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)渗饮,“玉大人,你說(shuō)我怎么就攤上這事宿刮』フ荆” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵僵缺,是天一觀的道長(zhǎng)胡桃。 經(jīng)常有香客問(wèn)我,道長(zhǎng)磕潮,這世上最難降的妖魔是什么翠胰? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮自脯,結(jié)果婚禮上之景,老公的妹妹穿的比我還像新娘。我一直安慰自己膏潮,他們只是感情好锻狗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著焕参,像睡著了一般轻纪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上叠纷,一...
    開(kāi)封第一講書(shū)人閱讀 51,775評(píng)論 1 307
  • 那天刻帚,我揣著相機(jī)與錄音,去河邊找鬼涩嚣。 笑死崇众,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的航厚。 我是一名探鬼主播校摩,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼阶淘!你這毒婦竟也來(lái)了衙吩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤溪窒,失蹤者是張志新(化名)和其女友劉穎坤塞,沒(méi)想到半個(gè)月后冯勉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡摹芙,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年灼狰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浮禾。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡交胚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盈电,到底是詐尸還是另有隱情蝴簇,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布匆帚,位于F島的核電站熬词,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏吸重。R本人自食惡果不足惜互拾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嚎幸。 院中可真熱鬧颜矿,春花似錦、人聲如沸嫉晶。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)车遂。三九已至封断,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舶担,已是汗流浹背坡疼。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衣陶,地道東北人柄瑰。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像剪况,于是被迫代替她去往敵國(guó)和親教沾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,192評(píng)論 25 707
  • 你知道嗎译断? 我已經(jīng)很少遇見(jiàn)像你這樣的人 每一句話授翻,說(shuō)的都像一首詩(shī) 我已經(jīng)很少有機(jī)會(huì)陷入那樣的意境 盡管,我每天都在...
    goldfisher閱讀 272評(píng)論 1 2
  • 直接上代碼吧
    shushuzhen閱讀 4,881評(píng)論 3 3
  • 以前吧,我上課之前都要自己準(zhǔn)備教具堪唐,一來(lái)自己做事自己放心巡语,二來(lái)不好意思麻煩學(xué)生。但是昨天我并沒(méi)有考慮又是自己帶玩具...
    Felicity楊閱讀 424評(píng)論 0 0