https://blog.csdn.net/Y0Q2T57s/article/details/81396193java
http的put與post的區別:mysql
這倆個方法初看一下好像都是更新資源,可是有本質上的區別,那就是語義。在HTTP中,PUT被定義爲冪等(idempotent)的方法,POST則不是,這是一個很重要的區別。程序員
首先解釋冪等,冪等是數學的一個用語,對於單個輸入或者無輸入的運算方法,若是每次都是一樣的結果,則稱其是冪等的。也就是說,若是一個網絡重複執行屢次,產生的效果是同樣的,那就是冪等(idempotent)。面試
用於提交請求,能夠更新或者建立資源,是非冪等的,舉個例子:
在用戶註冊功能上,每次提交都是建立一個用戶帳號,這個時候就用POST。
ESTful URL地址應爲:/user/creation?user_name=&pwd=redis
用於向指定URL傳送更新資源,是冪等的。
仍是用戶模塊,好比修改用戶密碼,雖然提交的仍是帳戶名跟用戶密碼這個倆個必填參數,可是每次提交都只是更新該用戶密碼,每次請求都只是覆蓋原先的值。此時就該用PUT。
ESTful URL地址應爲:/user/{user_id}/modify?pwd=**算法
當須要以更新的形式來修改某一具體資源的時候,如何判斷用PUT仍是POST呢?
很簡單,若是該更新對應的URI屢次調用的結果一致,則PUT。若是每次提交相同的內容,最終結果不一致的時候,用POST。spring
http狀態碼一覽表 http狀態碼一覽表 1**:請求收到,繼續處理 2**:操做成功收到,分析、接受 3**:完成此請求必須進一步處理 4**:請求包含一個錯誤語法或不能完成 5**:服務器執行一個徹底有效請求失敗 100——客戶必須繼續發出請求 101——客戶要求服務器根據請求轉換HTTP協議版本 200——交易成功 201——提示知道新文件的URL 202——接受和處理、但處理未完成 203——返回信息不肯定或不完整 204——請求收到,但返回信息爲空 205——服務器完成了請求,用戶代理必須復位當前已經瀏覽過的文件 206——服務器已經完成了部分用戶的GET請求 300——請求的資源可在多處獲得 301——刪除請求數據 302——在其餘地址發現了請求數據 303——建議客戶訪問其餘URL或訪問方式 304——客戶端已經執行了GET,但文件未變化 305——請求的資源必須從服務器指定的地址獲得 306——前一版本HTTP中使用的代碼,現行版本中再也不使用 307——申明請求的資源臨時性刪除 400——錯誤請求,如語法錯誤 401——請求受權失敗 402——保留有效ChargeTo頭響應 403——請求不容許 404——沒有發現文件、查詢或URl 405——用戶在Request-Line字段定義的方法不容許 406——根據用戶發送的Accept拖,請求資源不可訪問 407——相似401,用戶必須首先在代理服務器上獲得受權 408——客戶端沒有在用戶指定的餓時間內完成請求 409——對當前資源狀態,請求不能完成 410——服務器上再也不有此資源且無進一步的參考地址 411——服務器拒絕用戶定義的Content-Length屬性請求 412——一個或多個請求頭字段在當前請求中錯誤 413——請求的資源大於服務器容許的大小 414——請求的資源URL長於服務器容許的長度 415——請求資源不支持請求項目格式 416——請求中包含Range請求頭字段,在當前請求資源範圍內沒有range指示值,請求 也不包含If-Range請求頭字段 417——服務器不知足請求Expect頭字段指定的指望值,若是是代理服務器,多是下 一級服務器不能知足請求 500——服務器產生內部錯誤 501——服務器不支持請求的函數 502——服務器暫時不可用,有時是爲了防止發生系統過載 503——服務器過載或暫停維修 504——關口過載,服務器使用另外一個關口或服務來響應用戶,等待時間設定值較長 505——服務器不支持或拒絕支請求頭中指定的HTTP版本
校招一路走來很幸運,從最初的迷茫,到偶爾的被否定,而後慢慢調整心態,有缺憾纔能有進步,正視的本身不足,靜下心努力提升,勇敢嘗試各類面試機會,因上努力,果上隨緣,慢慢看到改變,收穫確定,重拾信心。sql
校招像一個爬山的過程,要一步一個腳印,不能由於某些失敗,就半途而廢,行百里者半九十,念念不忘,必有迴響,只要一路堅持下來,就會有所收穫。據身邊所見,大部分一直堅持面試下去的同窗,最後都拿到了滿意的offer。shell
寫在這裏,是對咱們的學員經過參加春招的一次總結和懷念,也但願給那些和過往學員同樣迷茫過,懷疑過,失落過的人一些幫助和激勵。數據庫
如何準備參加校招
需長期積累
(1)手撕代碼能力
如今大多數大廠的面試基本上都須要手寫代碼!基本逃不掉!因此這個能力是極其重要的,寫得好很加分,寫得很差就極可能GG了。
建議這方面基礎不太好的同窗,提早至少半年開始刷題,主要是lintcode和leetcode。等到校招開始前一個月再刷題可能就真的來不及了,那時候基本天天都有筆試面試,因此若是算法代碼能力很差的同窗,必定要儘早刷題,算法是個內功,須要時間慢慢積累,惟一的方法就是多刷題,多寫代碼。
Leetcode刷200道左右,編號前100的題目儘可能能刷兩遍,儘可能作到大部分能獨立寫bug free的ac代碼。
現場面試的時候基本是手寫代碼,因此最好有時間也練一練在紙上寫代碼,找找感受,儘可能寫的簡潔乾淨,不要塗塗改改。
(2)項目經歷和實習經歷
項目經歷和實力經歷是最須要平時積累的。不要僅僅就在完成任務這個層面,不要沉迷在項目的一些業務細節上,多關注框架,架構,優化方面的東西。能夠深刻去研究項目,好比作某些優化,用設計模式去重構一下,用到前沿的技術優化,好比redis緩存之類的東西,相信只要用心去研究所作的項目,等到面試的時候,去總結項目難點怎麼回答就不困難了!
可臨時抱佛腳
網絡,數據庫,操做系統,Java或者C++等這些基礎知識,面試的時候無非就是常見的那些面試題,都是固定的問題和答案,日常只要稍微關注一下便可,到了面試前花一兩個星期臨時抱佛腳看一看背一背基本就能應付過去。(若是要真正掌握這些知識,顯然是須要花很大精力去鑽研的,但就應付面試來講,記一記常考的點,搞清楚常問的點基本就夠了)。
場景題和系統設計題,不少同窗比較怕這類題目,其實這類題目大多涉及一些架構設計的東西,不會要你回答的多麼細緻,能給出大概的思路便可。並且可能是一些高併發高負載的系統設計題。可能大部分應屆生都無法接觸到這麼高難度的開發,因此這時候主要就看你的想法和視野了。嘗試去看一些架構方面的書和積累一些面試題就發現其實這類題都是一個套路。看着很難,但實際上只要知道這些技術的基本概念和做用就好了,答出思路基本就沒問題,畢竟不會讓你現場寫一個高併發系統。
完整面試+總結
一面(電話)
自我介紹
介紹你的項目
加密解密瞭解麼?幾種算法,講一下你瞭解的
多線程瞭解麼?什麼是線程安全?
說一個你最熟悉的設計模式
講一下你項目中用到了哪些設計模式
Java的hashmap的原理
Hashmap的線程安全性,什麼是線程安全的?如何實現線程安全
數據庫的索引瞭解麼?介紹一下
數據庫有哪些優化的方法?講你本身知道的
爲何事務能夠優化數據庫?
二面(視頻)
自我介紹
介紹項目
Mysql的數據庫引擎,區別特色
設計模式瞭解?講一下最熟悉的
寫一個單例模式,答主寫的是雙檢查鎖單例,問了爲何用Volatile,synchronize
單例模式在你項目裏哪些應用?
數據鏈接池採用了什麼設計模式?意義是什麼?
對高負載有了解麼
你意向的技術方向是哪塊?(答主回答的高併發,而後面試官說他是作高負載的)
對高併發有了解麼?
校招首次面試,二面跪。發現存在如下問題:
(1)準備不充分(自我介紹,項目介紹,項目難點等需提早準備)
(2)基礎不紮實(面試中問的數據庫相關問題基本沒答上來)
(3)缺少亮點(缺少體現本身能力的東西,好比項目難點如何解決,對一些前沿技術的瞭解等)
一面(電話)
據說你有博客,博客裏大概有什麼內容?
項目介紹,最複雜的表
Hashmap的原理
Hashmap爲何大小是2的冪次
介紹一下紅黑樹
Arraylist的原理
Arraylist的擴容機制
爲何arraylist擴容是1.5倍
場景題:設計判斷論文抄襲的系統
堆排序的原理
抽象工廠和工廠方法模式的區別
工廠模式的思想
object類你知道的方法
哪裏用到了工廠模式
Forward和redirect的區別
二面(視頻)
自我介紹
項目介紹
項目架構
項目難點
Synchronize關鍵字爲何jdk1.5後效率提升了
線程池的使用時的注意事項
Spring中autowire和resourse關鍵字的區別
Hashmap的原理
Hashmap的大小爲何指定爲2的冪次
講一下線程狀態轉移圖
消息隊列了解麼
分佈式瞭解麼
阿里做爲提供面試總結的同窗最想去的公司(畢竟是國內JAVA第一大廠)面試開始比較早。
一面面試官很好,體驗不錯。最後給面試者建議:但願多去深刻理解背後的原理,而不是僅僅停留在知道了解的層面。整體一面仍是感受不錯。
二面是整個校招表現最很差的一次面試。答的很亂。
此次面試看到的不足,第一,就是基礎很不紮實,不少常問的面試題都不知道,第二,要深刻去理解背後的原理,好比數據庫的隔離級別具體的實現等等,第三,深刻琢磨本身作的項目,用一些高大上的技術去裝飾。
阿里面試後,有了危機感,從0開始研究redis數據庫,研究mysql數據庫的一些常問的底層實現,以及spring的一些常見的面試題等。
一個經驗:快要到校招的時候,遇到一些本身不會的大塊,好比數據庫,不少人就直接放棄,以爲再學已經來不及,其實否則,面試的時候,問的東西基本是固定的,只要咱們對常問的面試問題深刻了解就行。因此快要到校招的時候發現本身還有東西徹底不會的,也不要慌,沉下心去學幾天,絕對來得及!
一面(電話)
自我介紹
項目介紹
volatile和synchronized
來個算法題:一個無序數組,其中一個數字出現的次數大於其餘數字之和,求這個數字 (主元素)
答完再來一個:一個數組,有正有負,不改變順序的狀況下,求和最大的最長子序列
項目用到什麼數據庫?隔離級別?每一個隔離級別各作了什麼
數據庫的索引?mysql不一樣引擎索引的區別
垃圾回收算法的過程
你瞭解的垃圾收集器? Cms收集器的過程
怎樣進入老年代?
平時用到了什麼設計模式?
講一下你最熟的兩個設計模式
用過什麼系統?shell寫過腳本嗎?
講你知道的Linux命令
便利蜂雖然公司名氣不大,但儘早拿到第一個offer,能夠提升信心和穩住心態,對後續的面試頗有幫助。
因此前期必定要多投簡歷,能面的儘可能面,反正最後你又不必定去,多面幾回積累經驗,等到大廠的面試開始,已經積累到了足夠的面試經驗,能夠發揮的更好。
便利蜂的面試也是幸運女神眷顧。
面試前,在牛客網搜索了全部便利蜂java的面經,只找到一篇,就把那篇面經的問題好好研究了一遍。而後奇蹟出現了,面試問的問題基本如出一轍,估計是同一個面試官,因此答得很順利。
一個小技巧,當面試的時候遇到之前作過的算法題的時候,千萬別說本身作過,請僞裝沒作過,否則面試官會換題目的。
經驗:
進入校招以後,多泡泡牛客網,多看看面經頗有幫助,面試其實都大同小異,就那麼些知識點,因此多看多總結。
一面(現場面)
自我介紹
項目介紹
手撕算法:一棵二叉排序樹,給定一個數,找到與給定數差值絕對值最小的數
場景題:設計一個系統,解決搶購時所須要的大量的短連接的功能,如何保證高併發,如何設計短連接
二面(現場面)
代碼量多少
給了一張紙,各類名詞,會的寫出來
而後給它解釋那些會的
設計題:設計一個系統,記錄qq用戶前一天的登陸狀態,提供16g內存和2tb的硬盤,要作到查詢指定qq號的前一天的登陸狀態,快速查詢O(1)複雜度
以前經歷了那麼多電話面,終於迎來了人生第一次現場技術面!
果真第一次老是會有點痛苦,很遺憾的掛了!
一面感受還不錯,項目簡單聊了一下,感受面試官興趣不大。就開始手撕代碼,第一次手撕代碼,略緊張,最後仍是想出來了。而後一個場景題,用到了剛學會的redis,現學現賣,感受面試官還比較滿意。
二面一坐下,就感受對面的面試官氣場太強,一坐下,沒讓自我介紹,直接給了問代碼量多少,準備大概估算一下,結果被面試官打斷,讓直接說,講真,有點慌亂哈哈。就說了大概十萬行。而後給了一張紙,大概有幾十個專業名詞,讓我把會的勾出來,而後一個一個的解釋。而後就出了一個系統設計題,一直沒理解面試官的意思,最後在面試官討論項目的過程當中,面試官問是否能夠經過value推到key,一下沒通過思考,答了個是,答錯了,而後面試官就說面試結束了。
不少時候,若是面試官問到一個比較基礎的問題,你沒答上來,那你就跪了,因此回答以前要三思熟慮,別急着回答,好好想想。
一面(視頻)
自我介紹
對面向對象的理解
介紹多態
Java新建線程有哪幾種方式
線程池的做用
看過框架源碼麼
整個面試過程,感受面試官都是問的一些很大的問題,就看你本身發揮了,儘可能把知道的都回答,並且儘可能回答的專業。
在問到對面向對象的理解的時候,可能大部分人都會回答多態繼承封裝就沒了。前幾天正好看到面向對象的六原則和一法則,而後就給面試官吹了一波,面試官也沒打斷,一直讓說,整個面試答得比較好的就是這裏。
因此仍是要提早準備啊,像這種題目,提早準備過和沒準備回答出來的效果徹底不同。
一面(現場)
自我介紹
項目介紹
數據庫的索引原理
索引使用的注意事項
數據庫的引擎
Java垃圾回收機制
Java的finalize,finally,final三個關鍵字的區別和應用場景
String類能夠被繼承麼
手撕算法:假設你是一個專業的竊賊,準備沿着一條街打劫房屋。每一個房子都存放着特定金額的錢。你面臨的惟一約束條件是:相鄰的房子裝着相互聯繫的防盜系統,且 當相鄰的兩個房子同一天被打劫時,該系統會自動報警。
給定一個非負整數列表,表示每一個房子中存放的錢, 算一算,若是今晚去打劫,你最多能夠獲得多少錢 在不觸動報警裝置的狀況下。
二面(電話)
自我介紹
對遊戲的瞭解
項目介紹
算法題:給一個整數數組,找到兩個數使得他們的和等於一個給定的數 target。
紅黑樹
Redis的應用
一面面試官說以前仔細看了面試者的博客,而後面試的內容就是讓面試者講一講博客裏寫的內容,基本就是以前複習準備的數據庫的知識,都遊刃有餘了。但感受到講的時候仍是思惟有點混亂,因此表達能力也很重要,有時間試着將一些常問的東西,本身私下表達一遍,儘可能作到表達清楚專業有條理。
而後手撕算法,leetcode原題,打劫房屋,本身當時只記得題目,但方法不記得了,就現場推了一遍動態規劃的狀態方程,結果很幸運推了出來。(這個仍是得靠前期的刷題的積累)。
二面電話面問的比較簡略,又用到了救命稻草redis,發現面試官都很喜歡問這個。可能由於是比較前沿的技術吧,如今企業用的比較多,但實際這個東西不是特別難。因此瞭解一下redis會很加分。
不久以後,面試者收到塗鴉移動的offer,應該是第四個offer,本身也開始慢慢更有信心了。
雖然最後沒去塗鴉,但面試的過程也學習了很多東西,本身在表達能力方面還須要增強。因此每次面試咱們或多或少都能有所收穫,多面試多經歷多體驗!
一面(現場)
自我介紹
項目介紹
項目裏用的什麼服務器
本身寫一個tomcat服務器,你會怎麼寫
分佈式服務器會出現哪些問題
怎麼解決session一致性緩存的問題
Redis的優點和特色
一千萬用戶併發搶購,怎麼設計
若是成功的用戶有10萬,redis存不下怎麼處理
你項目中的難點
二面(現場)
自我介紹
項目介紹
介紹spring中的熟悉的註解
讓你實現autowire註解的功能你會如何實現
Redis和mysql的區別
Redis的持久化有哪些方式,具體原理
中國電信算是提供面試總結的面試者拿到的第一個比較滿意的offer,雖然不是互聯網大廠,可是薪資地點發展都感受不錯,當時考慮,若是後面沒拿到大廠的offer就去電信養老了。
電信的面試官年紀偏大,問的問題也比較偏實踐和設計,基本沒問基礎知識。
一面一上來就讓寫一個tomcat服務器,石化,還好面試官比較和藹,慢慢提示,而後又問怎麼保持session的一致性,這個實際上是比較常見的問題,以前沒見過,面試官讓現場想,最後想到的答案正好是正確答案,而後面試官出的場景題,就將redis往上面套,無非就是緩存,消息隊列這些技術去處理那些高併發的問題。因此答得還不錯。
能夠看出,有時候面到你不會的東西,若是你能在面試官的引導下回答出來是很加分的,可能由於看到你的思考能力吧,更看重你的潛力!
專業面(現場)
自我介紹
項目介紹
你瞭解的設計模式,講兩個
Java collection類,集合,講兩個你瞭解的,說實現原理
Java線程池的做用
你以爲你在你實驗室處於什麼水平
綜合面試(現場)
自我介紹
說一下你知道的設計模式
畫一個策略模式的uml圖
Java多線程的理解
內存屏障是什麼
數據庫索引
項目中的優化
而後開始聊人生
中興軟件崗的面試比較水,主要看你的學校背景。學校不錯基本沒問題
一面(現場)
自我介紹
Java中的多態
Object類下的方法
Wait和notify的做用
Finalize的做用和使用場景
Hashcode和equals
爲何要同時重寫hashcode和equals
不一樣時重寫會出現哪些問題
Hashmap的原理
Hashmap如何變線程安全,每種方式的優缺點
垃圾回收機制
Jvm的參數你知道的說一下
設計模式瞭解的說一下啊
手撕一個單例模式
快速排序的思想講一下
給個數組,模擬快排的過程
手寫快排
設計題,一個圖書館管理系統,數據庫怎麼設計,需求本身定,題目很寬泛,面試官看你能考慮到哪些問題
二面(現場)
自我介紹
項目介紹
Redis的特色
分佈式事務瞭解麼
反爬蟲的機制,有哪些方式
手撕算法:反轉單鏈表
手撕算法:實現相似微博子結構的數據結構,輸入一系列父子關係,輸出一個相似微博評論的父子結構圖
手寫java多線程
手寫java的soeket編程,服務端和客戶端
進程間的通訊方式
手撕算法: 爬樓梯,寫出狀態轉移方程
智力題:時針分針何時重合
三面(現場)
因爲三面面試官不懂java,我不熟c加加,因此全程尬聊
自我介紹
項目介紹
項目難點
手撕算法:給定一個數字三角形,找到從頂部到底部的最小路徑和。每一步能夠移動到下面一行的相鄰數字上。
而後繼續在這個問題上擴展
求出最短那條的路徑
遞歸求出全部的路徑
設計模式講一下熟悉的
會不會濫用設計模式
多線程條件變量爲何要在while體裏,爲何不是if
你遇到什麼挫折
百度三輪技術面,每面都在手撕代碼,很注重代碼能力,還有智力題,也是比較特別的。
一面主要聊了聊基礎和寫了簡單的算法。
二面一開始聊了聊項目,而後就開始手撕代碼,先撕了翻轉單鏈表(這個算法算是面試常考了,整個秋招寫了三次這個算法),而後就撕了一個比較難的算法,微博子結構,代碼比較難寫,寫的比較慢,面試官催了好幾回,但仍是寫出了,面試官評價:「代碼風格不錯,可是寫的太慢,筆試會吃虧」,確實吃虧,筆試掛了好多哈哈。而後又是一輪寫,先寫多線程,而後寫socket,socket不會寫,就直接說了。面試的時候,有些問題答不上來也不要慌,最後問了一個智力題。
三面遇到了語言不同的面試官,因而就一直在寫代碼。
百度的面試很要求手撕算法的能力,考察的比較全面,智力題場景題均有涉及。
一面(電話)
自我介紹
項目介紹
Redis介紹
瞭解redis源碼麼
瞭解redis集羣麼
Hashmap的原理
hashmap容量爲何是2的冪次
hashset的源碼
object類你知道的方法
hashcode和equals
你重寫過hashcode和equals麼,要注意什麼
假設如今一個學生類,有學號和姓名,我如今hashcode方法重寫的時候,只將學號參與計算,會出現什麼狀況?
往set裏面put一個學生對象,而後將這個學生對象的學號改了,再put進去,能夠放進set麼?並講出爲何
Redis的持久化?有哪些方式,原理是什麼?
講一下穩定的排序算法和不穩定的排序算法
講一下快速排序的思想
二面(現場)
自我介紹
講一下數據的acid
什麼是一致性
什麼是隔離性
Mysql的隔離級別
每一個隔離級別是如何解決
Mysql要加上nextkey鎖,語句該怎麼寫
Java的內存模型,垃圾回收
線程池的參數
每一個參數解釋一遍
而後面試官設置了每一個參數,給了是個線程,讓描述出完整的線程池執行的流程
Nio和IO有什麼區別
Nio和aio的區別
Spring的aop怎麼實現
Spring的aop有哪些實現方式
動態代理的實現方式和區別
Linux瞭解麼
怎麼查看系統負載
Cpu load的參數若是爲4,描述一下如今系統處於什麼狀況
Linux,查找磁盤上最大的文件的命令
Linux,如何查看系統日誌文件
手撕算法:leeetcode原題 22,Generate Parentheses
三面(現場)
自我介紹
項目介紹
怎麼管理項目成員
當意見不一致時,如何溝通開發成員,並舉個例子
怎麼保證項目的進度
數據庫的索引原理
非聚簇索引和聚簇索引
索引的使用注意事項
聯合索引
從底層解釋最左匹配原則
Mysql對聯合索引有優化麼?會自動調整順序麼?哪一個版本開始優化?
Redis的應用
Redis的持久化的方式和原理
技術選型,一個新技術和一個穩定的舊技術,你會怎麼選擇,選擇的考慮有哪些
說你印象最深的美團技術團隊的三篇博客
最近在學什麼新技術
你是怎麼去接觸一門新技術的
會看哪些書
怎麼選擇要看的書
美團是提供總結的面試者拿到的第一個大廠offer,也是美團面完後心態更穩了。最有效提高信心的方法就是拿到一個滿意的offer!現場面,二面一開始太緊張,數據庫的四個特性不記得了,一個持久性死活想不起來,還好影響不大,後面答的都比較好,問到數據庫的隔離級別,主動引入到底層實現原理,回答問題的時候,能夠主動延伸一下,儘可能將本身會的表達出來。
面試以前,將牛客網上全部美團的面經扒了下來,看到不少出現率很高的問題,就提早準備了這些問題,果真在面試的時候碰到了,功夫不負有心人,準備工做沒有白作。因此多刷牛客,多刷面經纔是王道啊!
最後就是手撕算法,leetcode原題,生成括號,dfs問題。一向套路,僞裝以前沒見過這道題,先講一個暴力法,而後再寫出代碼!因爲leetcode刷了差很少兩遍,因此很順暢的寫出來了。(像這類題,若是以前徹底沒刷過或者沒見過,現場寫出來並不容易)
三面就基本就是聊人生,偶爾帶一點技術。
如今大廠的面試基本逃不過手寫代碼,基本上都是leetcode的中等難度的原題或者相似的題目,因此前期必定要多刷題,若是算法能力不強的話,這個只能靠硬實力了。
一面(現場)
自我介紹
項目介紹
項目架構
項目一個完整的執行流程(因爲我是搞java的,而面試官是搞c的,因此全程尬聊)
項目優化
二面(現場)
自我介紹
項目介紹
怎麼管理項目進度
日常的愛好
感受面試官也不是搞java的,因此又是一陣尬聊
華爲軟件崗的面試比較水,主要看你的學校背景。學校不錯基本沒問題
一面(現場)
自我介紹
項目介紹
面過哪些公司了
有哪些offer了
聊到多益,因而開始聊最近微博上很火的多益老闆
得出結論,我和麪試官都以爲多益老闆三觀有問題,但作遊戲就是要偏執的人
你博客主要哪方面的
多線程併發包瞭解麼
講一下countDownLatch
面試過程就是聊人生,面試官先問了你有哪些offer。而後討論了多益的老闆的微博和價值觀,估計是由於offer對實力也是一種承認,因此沒怎麼問技術就結束了,最後提供總結的面試者順利拿到offer。(算是秋招拿的最容易的一個offer,就一輪面試聊了聊八卦就過了)但其餘認識的同窗,有被懟了50分鐘技術的。
因此啊,面試這個東西看緣分,指望老天保佑遇到對味的面試官。
一面(現場)
自我介紹
項目介紹
Hibernate的做用,你對hibernate的理解
多線程的理解,如何保證線程安全
mysql數據庫的引擎和區別
場景題:千萬用戶搶購,如何處理高併發,而且有一個連接,指向前一天搶購成功的用戶,如何設計這個系統和數據庫
若是後臺處理搶購請求的服務器,每次最多承受200的負載,系統該怎麼設計
手撕算法:最小公倍數和最大公約數
二面(現場)
自我介紹
項目介紹
項目裏一個完整請求的流程
項目的優化
Hibernate和mybatis的區別
爲何用ssh框架
Mysql的容災備份
Redis和memcache 的區別
爲何選擇redis
Java的full gc
Full gc會致使什麼問題
騰訊筆試彷佛不怎麼刷人(筆試作的很爛,依然收到了面試通知,周圍認識的作了騰訊筆試的基本都收到了面試通知)。因此對待騰訊的筆試能夠輕鬆一點。
一面是個小姐姐,基本問的都是很大問題,看你的發揮,沒怎麼問基礎。沒想到一面能過,二面是一位中年大叔,不言自威,氣場略強,感受答的還能夠,最後仍是掛了,可能由於真的不招java吧。
一面的面試官讓我回去看一下分佈式事務,而後我就真的看了,而後後面網易的面試都在問這個,若是沒來面騰訊,估計後面網易也過不了。因此啊,面試真實一個學習的過程,不要錯失大好的學習機會
一面(現場)
自我介紹
寫一個兩個有序鏈表合併成一個有序鏈表
死鎖是什麼呢
怎麼解決死鎖
http請求流程
爲何負載均衡
怎麼實現負載均衡
數據庫掛了怎麼辦?除了熱備份還有什麼方法
講講你對spring的理解,不要把ioc和aop背給我聽
二面(現場)
自我介紹
項目介紹
算法:找出兩個數組相等的數,不能用其餘數據結構
算法:給定一個數字,一個數組,找出數組中相加等於這兩個數的和,不能用數據結構
算法:如何判斷一個樹是否是另外一顆樹的子樹
如何解決併發訪問的錯誤
招銀算是銀行類的公司面試最專業的。
一面上來就是手撕算法,最後問spring的時候,問對spring的理解,而且面試官提示我不要把ioc和aop背給我聽,就正好講了本身的理解,ioc和aop都是爲了下降代碼侵入性和耦合度。因此,有時候一些常規的問題,咱們最好能有本身的思考,若是是千篇一概的答案,並無什麼亮點,將本身的理解講出來或許更好。
二面基本都是在問算法,講思路就能夠了,這個時候就看本身的算法能力了。
前期必定要多刷題!
一面(現場)
自我介紹
項目介紹
項目難點(瘋狂懟)
I++操做是線程安全的麼?怎麼保證線程安全
場景題:設計一個下單系統,下單成功後能夠給用戶發優惠券
接上面場景題:服務器掛了,優惠券還沒發怎麼辦
數據庫掛了怎麼怎麼辦
怎麼保證一致性
分佈式事務知道麼
介紹分佈式事務
你的職業規劃
二面(現場)
自我介紹
項目介紹(又是狂懟)
Nio的原理
Channel和buffer
directBuffer和buffer的區別
nio和aio的區別
鎖的實現原理
怎麼解決緩存和主存的一致性問題
緩存還沒更新到主存,服務器掛了怎麼辦
數據庫掛了怎麼辦
網易的面試提供總結的面試者感受運氣比較好。也跟本身心態有關,這個時候已經壓力不大了,掛了也無所謂,但每每就是這種日常心去面試的時候,發揮的會更好。因此,心態真的很重要。
前兩天騰訊面試官讓下去了解的分佈式事務,結果網易一面的場景題基本都是在這一塊討論,最後還具體問了分佈式事務,正好現學現賣。因此,多面試,面試官說讓你去了解,必定要去了解,多學習確定沒壞處。二面面試官據說我有博客,感受不錯,說不少程序員就缺少總結的能力。日常積累的博客,感受終於派上用場了,因此若是有空,維護一個技術博客,寫寫算法題解或者一些技術問題,就當是學習筆記。
一面(現場)
自我介紹
項目介紹
項目難點(講到用了消息隊列優化,被面試官誇了一波)
瞭解hashmap麼?講講原理
知道java GC?講講過程(又背了一遍)
手撕算法,寫二叉的後序非遞歸遍歷
手撕算法,翻轉單鏈表
手撕算法,揹包問題
攜程的迷之測評,但面試仍是相對基礎,但也要求算法能力。第一個二叉的後序非遞歸遍歷的算法題,算是校招中惟一一個沒寫出來的算法,不過最後在面試官提示下仍是作出來了。
一面(視頻)
自我介紹
數據庫優化有什麼瞭解
索引的原理
聯合索引,若是聯合索引(a,b),如今查詢a>0,b>0能夠用到這個聯合索引麼?(過久沒看,生疏了,答錯了,答案應該是不能,只能用到a的索引,範圍索引只能用到一列)
數據庫優化中,有一個關鍵字能夠分析執行過程,知道麼(explain關鍵字)
Java虛擬機瞭解麼?使用中有什麼注意事項?
瞭解設計模式麼?手寫一個單例模式
寫一個算法吧,一個二維數組,每一行從左到右遞增,每一列從上到下遞增,給一個數,判斷他是否在在二維數組中,在返回下標,不在返回(-1,-1)
比較基礎的算法題,要作到最優。
瞭解nio麼?講一下nio的理解。
Linux命令瞭解麼?查看網絡狀態的命令,查看內存佔用的命令。Awk命令。
二面(視頻)
自我介紹
http協議的chunk知道麼?是幹什麼的?
http的狀態碼瞭解麼?說一下
301和302的區別
502和503的區別(這麼久沒面,早忘了,而後被面試官教育了一番,說沒有真正掌握這些知識)
Redis的數據結構的底層實現
Mysql集羣數據是怎麼同步的
手撕算法:一個鏈表,奇數位置遞增,偶數位置遞減,給鏈表排序。要求O(n)的時間複雜度
Select,poll,epoll的區別
數據庫的索引原理
場景題,設計一個高併發的系統。
三面(視頻)
自我介紹
服務器處理接受一個請求的過程
數據庫的索引的原理
Innodb都是聚簇索引麼?
設計一個文件分發系統,分發到10000臺服務器,作到高效可靠,如何保證高效,如何保證可靠
有什麼offer
你的優勢缺點
你以爲你在同齡中處於什麼水平
面頭條的時候,以前準備的知識點好比http狀態碼之類的記憶性的東西,早就忘光了。二面的時候問了一堆狀態碼,全都不記得了。面試官態度很好,說你如今不記得了,說明你這些知識只是爲了面試臨時抱佛腳,並無深刻理解,因此時間一長就忘了。確實是這樣。總的來講,頭條的面試比較注重算法能力,兩面都手寫了算法,算法不算特別難,可是真正實現好,仍是會有不少細節要考慮到,並且要寫的代碼都比較長。頭條也比較喜歡出場景題,感受面試官也沒有標準答案,主要看你的回答和思路。臨時抱佛腳背的知識會忘掉,但刷題後的代碼能力解題能力倒是內功,能夠說一勞永逸的,因此多刷題很重要,面試的時候代碼寫的好或許能夠彌補有些問題沒答上來。