面試前面也總結了一和二, 這第三篇可能更偏向于是內心的獨白篇和面試技巧總結吧.....
之前也面試別人品抽,現(xiàn)在輪到自己找工作,怎么說呢甜熔,每個面試官的看法不一樣圆恤,面試的方式就不一樣,比如我面試別人我喜歡問項目中他用到了那些纺非,然后針對用到的技術去問一些問題哑了,或者說對于某些場景的一些技術實現(xiàn)方案是我特別喜歡問的,比如當你的接口服務數(shù)據(jù)被人截包了烧颖,你如何防止數(shù)據(jù)惡意提交弱左? ? ?相對來說,Java的底層和基礎會問的少一點炕淮,當然問的少不是代表不問拆火,而是說側重點在于你的所做過的項目和你的設計思路如何。當然涂圆,懂基礎和底層更好们镜,這樣能讓你知其然,更知其所以然润歉,寫出來的代碼和程序更具有健壯性和可維護性模狭。所以說,基礎還是很重要的踩衩。
現(xiàn)在輪到自己出去面試嚼鹉,怎么說呢,其實還是挺緊張的驱富,原以為自己不會因此緊張或者焦慮锚赤,實際上,還是有的褐鸥,在沒找到合適的工作的時候线脚,甚至晚上有點睡不著覺,總覺著有什么事壓在心頭叫榕,睡覺都不安心浑侥。既然睡不著,那還是看看資料吧晰绎,我有個習慣锭吨,睡前看點問題,第二天早上就能想到答案寒匙,睡前記點資料零如,第二天早上就能記得特別深刻,不說廢話了锄弱,直接進入正題吧考蕾。
1会宪、背熟你的簡歷
原因:面試的第一個問題肖卧,一般都是讓你簡單介紹下你自己,或者介紹一下你最近的項目掸鹅,而一個面試者塞帐,如果連自己的簡歷都無法熟知拦赠,對里面提到的項目、技術都無法描述清楚的話葵姥,我想沒有哪家公司會接受這樣的荷鼠,哪怕你是超級人才,你自我表述不行榔幸,估計也會為此頭疼允乐,所以,切記:一定要背好自己的簡歷削咆,不要求你能全部記下牍疏,至少要熟記你最近所待過的兩家公司,這兩家公司里面你做過的項目拨齐,你負責的模塊鳞陨,項目里面用到的技術以及相對應的技術實現(xiàn)方案(這個尤為重要)。
2瞻惋、深入了解并熟記部分Java基礎知識
原因:大部分公司無論面試初級還是高級炊邦,無論是筆試還是面試,都會問到一系列基礎題熟史,這些基礎題大概涵括jvm馁害、字符串、集合蹂匹、線程等等碘菜,如果說每一個讓你死記硬背你肯定記不住,那么就是理解中記憶了限寞,拿jvm來說 忍啸,如果讓你談談你對jvm的理解, 那么你首先得知道JVM有哪些結構組成履植,每個結構用來做什么的计雌,然后考慮一個Java對象從創(chuàng)建到回收,如何途徑JVM這些結構的玫霎。如果你從這些方面來綜合記憶凿滤,相信事半功倍,并且你理解的更透徹庶近。 至于如果讓你談集合翁脆,舉例List集合下面ArryList、LinkedList鼻种、Vector等集合的區(qū)別反番,那么同樣的方法,你需要理解每一個的結構組成是什么,你才能知道他有什么作用罢缸,這樣你在平時的用法上會更精煉篙贸,而且在面試過程中,也不至于啞口無言枫疆。
3爵川、保持自信心和沉重冷靜的心態(tài)
原因:面試過程中,自信是少不了的养铸,相信你可以雁芙, 面試的路上可以自己對自己說一句: I belive I can ! ? ?反正我就是這么做的轧膘,自我的心里暗示吧钞螟,其實面對面試官的時候,你自信的狀態(tài)也會讓面試官覺得你是個很有底氣的人谎碍,至少從感覺上會給你打個高分鳞滨。另外還有就是保持沉重冷靜,如果是讓你提供技術方案或者說說某個技術原理蟆淀,沒必要一緊張一咕嚕的什么都說拯啦,你可以對面試官說:我先想想,然后自己組裝記憶中的知識熔任,組裝下語言褒链,有條理的說出來,這樣能更好的表現(xiàn)你的才能疑苔,不是嗎甫匹? ? 面試誰都會緊張,我也會緊張惦费,有時候明明記得的知識點忘了兵迅,沒關系,大膽的說忘了薪贫,或者直接說不知道恍箭。 要記住,有部分不知道沒關系瞧省,如果全都知道扯夭,那你應該是CTO級別了(開個玩笑)。
4鞍匾、盡量記住面試過程中你回答不出來或者回答存在不妥的問題
原因:面試失敗了沒關系勉抓,畢竟每個公司的要求不一樣,問的問題和你擅長的方面可能有所出入候学,但是請記住一點:面試過程中那些你回答不出來問題藕筋,或者你自己感覺回答不太準確的問題,自己記下來,如果不會的隐圾,你可以當場問問面試官有沒有好的解答伍掀,如果面試官不愿意告訴你(一般是基礎方面面試官就懶得答你),那么你就自己回家慢慢查資料暇藏,如果是某些特定的技術蜜笤,也可以自己寫寫案例什么的,畢竟知識點就那么多盐碱,問題百變把兔,原理不變,面試也是一個學習知識的過程瓮顽,讓你了解大部分公司目前需要或者要求的技術县好。這次不知道,下次就知道了
5暖混、去面試之前缕贡,最好先了解你要去面試公司的情況(包括產(chǎn)品、項目情況)
原因:俗話說拣播,知己知彼晾咪,百戰(zhàn)不殆,面試就是一場戰(zhàn)斗贮配,你需要了解你面試公司基本情況谍倦,包括崗位要求,這樣你就能大概知道你需要面試的這家公司的技術要求情況泪勒。 為何讓你去了解這家公司的主營產(chǎn)品和項目呢昼蛀,就是讓你大概了解這家公司的一個技術架構的情況,包括你可能對他們的一種實現(xiàn)方式提出質疑和疑惑酣藻,相信面試官很愿意幫你解答這些問題的曹洽。這樣你既圖了表現(xiàn),也學到了知識辽剧,何樂而不為送淆。
6、合理安排你的面試時間(如果有多家公司的面試機會怕轿,盡量把你想去的公司放到最后去面試)
原因:估計很多人都不理解這個偷崩,可能大部分的人對于如何安排面試時間比較迷茫,隨意安排撞羽〔保可是這里有個技巧,如果同時有多個面試機會诀紊,你把你最想去的公司放到最末尾去面試谒出,這樣你經(jīng)歷過了前面的這些公司篩選,如果成功了是個機會,如果沒成功笤喳,也是為最后做鋪墊为居。 ?不過這里就需要考慮兩點:1、你需要記住你投簡歷的公司和基本情況(這說明你不是海投的) ? ?2杀狡、如果記不住蒙畴,那么可以先應答一個時間,后續(xù)了解公司信息之后呜象,通過郵件或者其他方式與其約定膳凝,調整面試時間。而且建議安排一天的面試公司不要超過兩家恭陡,最好的是上午一家蹬音,下午一家,這樣你能有充足的時間調整狀態(tài)子姜。
1楼入、?JVM結構原理哥捕、GC工作機制詳解
答:具體參照:JVM結構、GC工作機制詳解嘉熊,說到GC遥赚,記住兩點:1、GC是負責回收所有無任何引用對象的內存空間阐肤。 注意:垃圾回收回收的是無任何引用的對象占據(jù)的內存空間而不是對象本身凫佛,2、GC回收機制的兩種算法孕惜,a愧薛、引用計數(shù)法 ?b、可達性分析算法(??這里的可達性衫画,大家可以看基礎2 Java對象的什么周期)毫炉,至于更詳細的GC算法介紹,大家可以參考:Java GC機制算法
2削罩、Java對象的生命周期
答:創(chuàng)建階段 瞄勾、 應用階段 、不可見階段 弥激、不可達階段 进陡、收集階段 、終結階段微服、 對象空間重新分配階段等等趾疚,具體參照:Java 對象的生命周期
3、Map或者HashMap的存儲原理
答:HashMap是由數(shù)組+鏈表的一個結構組成,具體參照:HashMap的實現(xiàn)原理
4糙麦、當數(shù)據(jù)表中A戈二、B字段做了組合索引,那么單獨使用A或單獨使用B會有索引效果嗎喳资?(使用like查詢如何有索引效果)
答:看A觉吭、B兩字段做組合索引的時候,誰在前面仆邓,誰在后面鲜滩,如果A在前,那么單獨使用A會有索引效果节值,單獨使用B則沒有徙硅,反之亦然。同理搞疗,使用like模糊查詢時嗓蘑,如果只是使用前面%,那么有索引效果匿乃,如果使用雙%號匹配桩皿,那么則無索引效果
5、數(shù)據(jù)庫存儲日期格式時幢炸,如何考慮時區(qū)轉換問題泄隔?
答:使用TimeStamp , ?原因參照:Java編程中遇到的時區(qū)轉換問題
6、JavaObject類中有哪些方法宛徊?
7佛嬉、HTTP協(xié)議,GET和POST 的區(qū)別
1疤祭、SimpleDataFormat是非線程安全的旅挤,如何更好的使用而避免風險呢
答:關于SimpleDateFormat安全的時間格式化線程安全問題
2、如何看待設計模式葱淳,并簡單說說你對觀察者模式的理解
答:1钝腺、設計模式有神馬用2、觀察者模式類圖及實現(xiàn)
3赞厕、集群環(huán)境中艳狐,session如何實現(xiàn)共享
答:1、Java集群之session共享2皿桑、session多服務器共享方案毫目,還有一種方案就是使用一個固定的服務器專門保持session蔬啡,其他服務器共享
4、分布式镀虐、集群環(huán)境中箱蟆,緩存如何刷新,如何保持同步刮便?
答:A空猜、緩存如何刷新?1恨旱、定時刷新 ?2辈毯、主動刷新覆蓋,每個緩存框架都有自帶的刷新機制搜贤,或者說緩存失效機制谆沃,就拿Redis和 Ehcache舉例, 他們都有自帶的過期機制仪芒,另外主動刷新覆蓋時唁影,只需獲取對應的key進行數(shù)據(jù)的覆蓋即可
B、緩存如何保持同步掂名? ?這個redis有自帶的集群同步機制据沈,即復制功能,具體參考:基于Redis分布式緩存實現(xiàn)铆隘,Ehcache也有分布式緩存同步的配置卓舵,只需要配置不同服務器地址即可南用,參照:Ehcache分布式緩存同步
5膀钠、一條sql執(zhí)行過長的時間,你如何優(yōu)化裹虫,從哪些方面肿嘲?
答:1、查看sql是否涉及多表的聯(lián)表或者子查詢筑公,如果有雳窟,看是否能進行業(yè)務拆分,相關字段冗余或者合并成臨時表(業(yè)務和算法的優(yōu)化)
2匣屡、涉及鏈表的查詢封救,是否能進行分表查詢,單表查詢之后的結果進行字段整合
3捣作、如果以上兩種都不能操作誉结,非要鏈表查詢,那么考慮對相對應的查詢條件做索引券躁。加快查詢速度
4惩坑、針對數(shù)量大的表進行歷史表分離(如交易流水表)
5掉盅、數(shù)據(jù)庫主從分離,讀寫分離以舒,降低讀寫針對同一表同時的壓力趾痘,至于主從同步,MySQL有自帶的binlog實現(xiàn) 主從同步
6蔓钟、explain分析sql語句永票,查看執(zhí)行計劃,分析索引是否用上滥沫,分析掃描行數(shù)等等
7瓦侮、查看mysql執(zhí)行日志,看看是否有其他方面的問題
個人理解:從根本上來說佣谐,查詢慢是占用mysql內存比較多肚吏,那么可以從這方面去酌手考慮
面試還會問到一些關于設計方案相關的問題狭魂,比如
1罚攀、你的接口服務數(shù)據(jù)被人截包了,你如何防止數(shù)據(jù)惡意提交雌澄?
答:我們可以在接口傳輸參數(shù)里面設置一個業(yè)務編號斋泄,這個編號用來區(qū)分是否重復提交。這樣即使數(shù)據(jù)被抓包了镐牺,對方也無法區(qū)分每個字段你的含義炫掐,這時,這個業(yè)務編號的作用就來了
2睬涧、假設服務器經(jīng)常宕機募胃,你從哪些方面去排查問題?
答:這個就留個各位看官補充了畦浓,可評論回復
總而言之該看的還是得看痹束,還學的還是得學。再次強調讶请,基礎很重要祷嘶!面試技巧同樣很重要,還是那句話:祝愿各位看官都能找到心儀的工作吧~~
另外夺溢,奉勸大家不要頻繁跳槽论巍,這些知識點能提升固然好,不要盲目跳槽风响,找工作很累的嘉汰,而且沒有哪家公司喜歡頻繁跳槽的員工
大家可以加入群:656039503里面有Java高級大牛直播講解知識點 走的就是高端路線
(如果你想跳槽換工作 但是技術又不夠 或者工作上遇到了
瓶頸 我這里有一個JAVA的免費直播課程 講的是高端的知識點
基礎不好的誤入喲 只要你有1-5年的開發(fā)經(jīng)驗