將近新年,又是一年一度的互聯網寒冬,伴隨着疫情的原因,是的互聯網寒冬比往年更加的寒冷。在20年底的時候,隨着公司投資人的撤資,我也體驗了一把別人口中所說的寒冬。在今年11月份,自己也因爲很多原因,不得不以在這寒冬的季節投簡面試。在這幾個月的辛苦面試歷程中,也體驗了寒冬的殘酷。但陽光總在風雨後,堅持了幾個月,也收到了心儀的offer,雖說不是很順利,但也知道了自己的不足以及往後的努力方向。下面是我這幾個月以來面試的幾家面試題算是比較典型的工廠面試題。希望可以幫助到還在寒冬辛苦投簡面試的碼農們。
攜程面試
- 自我介紹
- 秒殺庫存如何設計的
- 如何防止超賣
- 高併發下只有一個人能減庫存那如果庫存還有很多怎麼辦
- 分佈式鎖怎麼實現 什麼時候加 加在什麼上面
- 線程池
- 線程同步
- 多線程
- 創建線程的方式
- NIO 異步這些瞭解過嗎 能不能說一下
- 類的加載過程
- 能不能修改字節碼
- hashmap concurrenthashmap
- synchronized
- hashmap如何get一個元素
- hashmap底層查找的時間複雜度
- 線程池的工作流程
- 如果達到核心線程數但是沒達到最大線程數然後隊列已滿 這時候怎麼辦
- 算法題:arraylist刪掉奇數位的元素
- 兩個數組如何找交集(除了用hashmap還有別的方法嗎 使用hashmap的時間複雜度和空間複雜度是多少)
提示:使用排序(排序)
排序的時間複雜度
只記得這些了
許願能過
字節跳動(頭條三面)
一面:
自我介紹,做的項目的介紹,項目架構設計,
Dubbo原理介紹,netty原理介紹
hashMap原理,是線程安全的嗎?爲什麼不安全。
redis緩存過期策略,準備同步,哨兵機制和集羣的區別
算法題:
給定一個經過編碼的字符串,返回它解碼後的字符串。
編碼規則爲: k[encoded_string],表示其中方括號內部的 encoded_string 正好重複 k 次。注意 k 保證爲正整數。
你可以認爲輸入字符串總是有效的;輸入字符串中沒有額外的空格,且輸入的方括號總是符合格式要求的。
此外,你可以認爲原始數據不包含數字,所有的數字只表示重複的次數 k ,例如不會出現像 3a 或 2[4] 的輸入。
示例:
s = "3[a]2[bc]", 返回 "aaabcbc".
s = "3[a2[c]]", 返回 "accaccacc".
s = "2[abc]3[cd]ef", 返回 "abcabccdcdcdef".
二面:
算法:
你是一個專業的小偷,計劃偷竊沿街的房屋,每間房內都藏有一定的現金。這個地方所有的房屋都圍成一圈,這意味着第一個房屋和最後一個房屋是緊挨着的。同時,相鄰的房屋裝有相互連通的防盜系統,如果兩間相鄰的房屋在同一晚上被小偷闖入,系統會自動報警。
給定一個代表每個房屋存放金額的非負整數數組,計算你在不觸動警報裝置的情況下,能夠偷竊到的最高金額。
示例 1:
輸入: [2,3,2]
輸出: 3
解釋: 你不能先偷竊 1 號房屋(金額 = 2),然後偷竊 3 號房屋(金額 = 2), 因爲他們是相鄰的。
示例 2:
輸入: [1,2,3,1]
輸出: 4
解釋: 你可以先偷竊 1 號房屋(金額 = 1),然後偷竊 3 號房屋(金額 = 3)。
偷竊到的最高金額 = 1 + 3 = 4 。
項目,主要做了什麼,項目中碰到的問題有哪些,都市怎麼解決?你覺得那個項目是最有挑戰的
java多線程,線程池的選型,爲什麼要選這個,底層實現原理
三面:
你最熟悉的項目,做了什麼,爲什麼這麼做,怎麼體現你項目的價值
讓你來推廣廣告,你會怎麼設計?
java基礎問了些,JVM內存模型 G1和CMS垃圾回收器
如何中斷線程,await和sleep區別
設計一個秒殺系統