我畫你猜:大鵬文章中的一句詩詞,謎底結尾揭曉java
轉眼已經工做入職一年的時間了,仍是有很是多收穫的,感謝這一年的時光,感謝全部遇到的人,讓我變成更好的本身。web
正所謂滿園春色關不住,一枝紅杏出牆來,帶着滿滿的收穫我開始了大規模的面試,拿到了大部分 Offer。面試
在發出來面試經歷以前,簡單談談我這一年中做爲職場新人的收穫和反思。redis
職場收穫
適應公司技術
進入職場後,會先去適應公司的技術棧和工具,這些其實並不難,在瞭解和學習的過程當中也能增加見識。算法
適應人際關係
除此以外,要適應同事之間的人際關係,而且要積極主動接受每一份兒交代過來的工做,由於每一個人都會在心裏給他人貼標籤,若是某我的作事不靠譜,你們都會避而遠之,因此最開始的時候要給你們留下好印象,便於往後協做。spring
多作日誌記錄
我在剛剛入職時,交給了我一個很小的功能迭代,聽師兄介紹完背景以後,就開始進行開發,而且完成自測,代碼 cr 和完成的發佈流程,同時在作的過程當中,記錄了一篇日誌,以避免下次作的時候忘記,作事情嚴謹細心也會給別人留下好印象。數據庫
敢於承擔責任
在承擔責任方面其實我有不少作的不夠的地方,有過主導需求的機會,可是沒能把握住,還有一部分交給個人工做,聽任自流,並無徹底積極去推動。這裏須要提醒你們的就是不管什麼樣的工做交給你了就要多多用心,積極主動,敢於承擔。數組
作好向上管理
另一個,初入職場和學生時代有個很不一樣的地方,我以爲也是最須要牢記的。markdown
在學校作事情要對本身負責,在職場作事情要對直屬 leader 負責,也就是所謂的向上管理。數據結構
在學校的時候,不管是學習上課、參加學生會工做、參加課外興趣班,本質都是爲了自我提高,在讀大學期間有所收穫,畢業的時候回首沒有虛度光陰。
在職場裏面,須要每一個人在本身的工做崗位上對集體有產出,爲公司創造價值,在這樣的狀況下,你的直屬 leader 決定了你的工做內容和產出價值,而我的的產出價值又會直接彙報給直屬 leader,由 leader 合併你們的工做產生更大的價值,因此對直屬 leader 負責,向上管理很是重要。
技術推進業務
做爲技術人員的產出,一般仍是要看如何利用技術去提高價值的。不可以徹底去考業務來推進技術開發,要有技術推進業務的思考。舉個例子:
- 業務推技術:好比說產品經理說要增長一個頁面,而後開發人員就去開發這個頁面,這就是業務在推進技術。
- 技術推業務:由於技術改造,使得開發頁面的效率提高了 10 倍,而後開發人員和產品經理說,你的夢想實現了,花 1 個需求的時間就能夠開發 10 個需求了,這就是技術在推進業務。
做爲開發工程師,就是要發現技術中的痛點,解決掉以後提高自我價值。
面經
百度
第一次面試
- maven 打包的時候須要配置什麼才能將包打進去
- spring boot 都有哪些註解
- 描述下如何反轉鏈表
- 如何用 java 的寫一個 web 應用,操做數據庫,要注意什麼
- 若是多個應用寫同一份兒文件,如何纔可以不出錯誤?
- spring 的 aop 是怎麼實現的,用最通俗的話講明白
第二次面試
- cpp 瞭解多少,講講指針和引用的區別
- 智能指針的實現原理
- 多態的理解
- 多態底層是如何實現的
- epoll 這些有印象麼
- IO 模型都有哪些
- 寫一個代碼比較版本號,好比 1.1.0 和 1.0.1
- 內核態和用戶態區別
拼多多
第一次面試
- 1 個有序的數組,裏面包含了 N 個數字,分割成 M 段(M<=N),而後進行亂序排列,如何快速恢復其順序
// 45 123 79
// 45 67 123 89 void resort(int[] arr, int N, int M) { } 複製代碼
主要思路是這樣的,先遍歷一遍,而後獲得最基本的分割狀況,根據分割大小,與 M 進行判斷和比較,若是比 M 小,再進行判斷是否存在大塊須要分割,再進行兩兩比較,分割完成,標記好分割點,最後進行重組
第二次面試
- rpc 調用流程?
- rpc 調用中,A 調用 B,A 如何知道 B 是否是服務不可用了?
- rpc 調用如何判斷資源佔用狀況?
- 算法題,一棵二叉樹,找到全部到葉子節點和爲 target 的路徑
- countDownLatch 的實現原理?
- 線程有多少種狀態?time_wait 狀態是什麼意思?
第三次面試
- 如何設計 rpc,序列化怎麼設計?
- 數據庫 mybatis 語句 insert 的時候會返回 id,那麼這個 id 是如何返回的,如何可以確認這條數據是你插入的,從數據庫事務角度來看?
- 一個數組,[1,2,3,5,7,9,8,3,2],有一個值 k=8,如何判斷數組中是否存在該值,時間複雜度不超過 O(n)
- 垃圾回收爲何須要標記的步驟,垃圾回收其實有四步,stop the world 緣由是什麼?
字節跳動
第一次面試
- redis 的基本數據結構
- m 個有序數組,每一個數組長度爲 n,將 m 個數組生成 1 個有序數組,如何作?
使用堆排序,m 個排一次,而後補充數據,最後獲得結果
第二次面試
- 數據庫不使用 b+樹還可使用什麼數據結構?
- 跳錶如何判斷這個數據插在哪裏?
- 跳錶和 b+樹比哪一個效率更高?
- 什麼狀況下不會使用索引?
- http 2.0 有什麼優勢
- 外部調用爲何不使用 rpc 而使用 http 協議?http 協議有什麼不可替代的麼?
- 若是流量突然很大,不使用限流的方式應該怎麼辦,也不擴容?削峯
- 消息隊列消息順序不一致應該怎麼處理?
- 4 個數組,目標值 target,每一個數組各找一個數,使得 4 個數和爲 target,數組沒有順序,找到全部不重複的組合,要求時間複雜度 O(n^2)
shopee
- 對分佈式事務有什麼瞭解?
- redis 如何實現分佈式鎖?
- 如何保持分佈式一致性?
- 消息隊列重複消費怎麼辦?
- 算法題
尋找第K大
限定語言:Python. C++. C#. Java 有一個整數數組,請你根據快速排序的思路,找出數組中第K大的數。 給定一個整數數組a,同時給定它的大小n和要找的K(K在1到n之間),請返回第K大的數,保證答案存在。 測試樣例: [1,3,5,2,2],5,3 返回:2 複製代碼
- https 的執行過程是怎麼樣的
- 如何判斷兩個鏈表是否有交點,時間複雜度和空間複雜度
- 數據庫的事務隔離級別有什麼?
- 數據庫如何實現可重複讀這個隔離級別的?
- 如何寫代碼判斷死鎖的存在?設計一個數據結構出來
- redis 是如何作主從同步的?
- redis 持久化的方式都有什麼,名稱都是什麼?
- 如何解決循環依賴的?
- TCP 如何鏈接和斷開的?四次揮手的流程?
- 進程間通訊方式都有什麼?有什麼區別?
- 什麼是數據庫事務?事務在哪些地方有應用?
- 如何設計一個哈希結構,都要注意什麼?
以爲畫直擊靈魂,歡迎點贊、在看和轉發
本文使用 mdnice 排版