前言
今年我也33了,離傳說中不好找工作的35歲又更近了。說沒有焦慮是對自己撒謊,于是我采訪了一些人,自己思考了下,寫下了這篇文章,希望能有些共鳴。
先看看大家的态度:
- 色老力衰,不好忽悠,不能帶頭加班
- 老油條,學不動,加班就是磨洋工
- 關鍵還是貢獻的價值。能不能給業務帶來價值
- 找背書
- 基本邏輯就是,比你這個難得多的哥們都搞定了,你這點小事根本不再話下
- 去bat鍍鍍金,捷徑
- 看看你的上司是咋過來的
不知從何時起,很多企業将入職門檻限定在35歲以下,“35歲”已然成為職場老鳥的魔咒,而近年來有關**“程式員猝死”、“程式員跳樓”**等新聞層出不窮,這股百般苦惱的邪氣,已入侵到了程式員群體,每每看到這類資訊,我的心情都無比沉重,大多數人在這個年齡所面臨的困惑、承擔的壓力、肩上的重擔,這個年齡的遭遇我都感同深受。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5SY0kjNzMjYmBzNjNWZ2QmYwQzYiRmM5MTM0kzMyYmZx8CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
一、阿裡 (會員中台)
1. Java
- 重寫hashcode()是否需要重寫equals(),不重寫會有什麼後果
2. 并發
- 自旋鎖和阻塞鎖的差別
- 公平鎖和非公平鎖的差別
- jdk中哪種資料結構或工具可以實作當多個線程到達某個狀态時執行一段代碼
- 栅欄和閉鎖的差別
- 如何使用信号量實作上述情況
3. JVM
- 新生代和年老代的GC算法分别是什麼
- 标記清除和标記整理的差別
- 了解過CMS收集器嗎
4. 網絡
- 解釋HTTPs
- HTTPs為什麼要用對稱加密+非對稱加密,相對于隻使用非對稱加密有什麼好處
5. 資料庫
- 給定一個表,其中有三列(員工名稱,工資,部門号),找出每個部門工資最高的員工
6. 代碼
- LeetCode 863 二叉樹中所有距離為K的結點
二、阿裡 - 新零售技術事業群(一面挂)
1. 架構
- 用過哪些Java開源架構
- 講一講對Spring的了解
- 看過IOC和AOP的源碼嗎
- 它們底層是如何實作的
- 用過其他什麼架構
- 了解過分布式或者微服務的開源架構嗎
- 講一講對分布式系統模型的了解
- 分布式系統中有一個節點當機怎麼辦
- 分布式系統如何實作負載均衡
2. 資料庫
- MySQL和Oracle資料庫有哪些不同
- 資料庫有哪些鎖
- 表鎖和行鎖的差別
- 哪些場景需要加表鎖
- 插入一條資料需要加什麼鎖
- 分布式資料庫如何保證資料可靠性
- 了解過MySQL的主從複制嗎
三、騰訊 - TEG
1. 資料結構
- B+樹與紅黑樹的差別
2. Java
- HashMap的底層資料結構,局限性與線程安全
- 如何實作線程安全的HashMap
- Collections.sychronizedMap與ConcurrentHashMap的差別
- HashMap與ConcurrentHashMap的性能比較
3. JVM
- 類的編譯過程
- 類的加載過程
- JVM的記憶體空間
- JVM的GC機制
4. 作業系統
- 程序與線程的差別
- 程序間如何通信
- 共享記憶體與Socket的優缺點與性能比較
- 子程序從父程序繼承了什麼
- 什麼是僵屍程序
- 線程與協程的差別
5. 網絡
- TCP的四次揮手
- TIME_WAIT狀态處在哪一方以及為什麼需要它
- TCP與UDP的差別與可靠性
- 如何實作UDP的可靠傳輸
6. 資料庫
- 解釋ACID四大特性
- 原子性的底層實作
- 資料庫當機後恢複的過程
- 如何保證事務的ACID特性
- MySQL日志類型
7. 分布式
- 談談對分布式系統的了解
- 分布式資料庫的實作
- 如何保證不同資料庫之間的資料一緻性
- 如何實作主從資料庫間的同步
四、騰訊 - FIT
1. 網絡
- TCP三向交握/四次揮手
- TIME_WAIT狀态
- 網絡延遲大的情況怎麼處理
- HTTP請求到響應全過程(服務端)
- HTTP請求頭及其作用
- HTTP和HTTPs
- HTTPs的握手過程
五、位元組 - 頭條(二面挂)
1. 一面
- 作業系統
- 講一講程序和線程
- 講一講多線程和線程池
- Linux的最大程序數限制
WEB
- 輸入URL到頁面加載的過程
- 後端怎麼處理前端傳過來的檔案
JVM
- GC機制(GC算法,分代收集,收集器,STW)
代碼
- 給定一個數組a[N]和一個整數P,求a[i] + a[j] + a[k] =P,保證i<j<k
2. 二面
資料庫
- 身份證如何有效建立索引
- Innodb索引類型
- 聚簇索引和非聚簇索引的差別
- 索引失效的情況
- 寫一個分頁查詢
Java
- JMM記憶體模型
- Classloader雙親委派機制
- 講一下ThreadLocal
- 線程間如何通信
六、位元組 - 頭條 - 用戶端開發(已拿offer)
1. 一面
作業系統
- 講一下程序和線程
- 講一下線程安全
智力題
- 兩個人抛硬币,先抛的人赢的機率
代碼
- 單連結清單排序,奇數位升序,偶數位降序
2. 二面
WEB
- HTML,JS,CSS的差別
- 輸入URL到頁面加載的過程
- HTTP的長連接配接和實作原理
Java
- 建立和終止一個線程
- 講一下熟悉的容器類
- ArrayList中如何删除某個元素的所有相同元素
- 講一下疊代器的實作原理
SQL
- 學生表 Student (S#,Sname,Sage,Ssex),課程表 Course (C#,Cname),成績表SC (S#,C#,score),查詢平均成績大于 60 分的同學的學号和平均成績
代碼
Leetcode 283 移動零
3. 三面
智力題+資料結構+代碼
- 撲克牌的移動
并發
- 樂觀鎖和悲觀鎖的差別
- 兩種鎖在Java中的具體實作
- 兩種鎖的使用場景
七、阿裡 - 供應鍊平台事業部(二面挂)
1. 一面
架構
- 講一下IOC
- 對SpringBoot的了解
- Mybatis中#和$的差別
Java
- HashMap底層實作和擴容機制
代碼
- Leetcode 206 連結清單反轉
資料庫
- InnoDB和MyISAM的差別
其他
- SQL注入
2. 二面
算法和資料結構
- 講一下紅黑樹
- 紅黑節點的個數
- 紅黑樹的插入删除查詢時間複雜度
- 講一下B+樹
- B+樹的插入删除查詢時間複雜度
- 講一下堆的性質及應用場景
- 建堆時間複雜度
- 各種排序算法的時間複雜度及穩定性
資料庫
- 講一下三範式
網絡
- 為什麼要三次握手
- 二次握手有什麼問題
- 三次握手有哪些缺陷
- TCP是如何控制流量的
- 發送方發送頻率過高造成丢包,TCP是如何解決的
- 講一下OSI網絡架構
- HTTP在哪一層
- HTTP封包結構
- HTTP首部字段
- HTTPs加密在哪一層實作
作業系統
- 講一下虛拟記憶體
- 如果通路虛拟位址時,該位址在實體記憶體中不存在,會發生什麼
Java
- 講一下volatile
- volatile底層實作
- static修飾用法和差別
JVM
- 講一下GC算法
- JVM記憶體空間
代碼
- Leetcode 2 連結清單相加
函數式程式設計
- 函數式程式設計和面向對象程式設計的差別
- jdk8為什麼要引入函數式程式設計
機器學習
- 講一下梯度下降
- 梯度下降能保證收斂嗎
總結
一般像這樣的大企業都有好幾輪面試,是以自己一定要花點時間去收集整理一下公司的背景,公司的企業文化,俗話說「知己知彼百戰不殆」,不要盲目的去面試,還有很多人關心怎麼去跟HR談薪資。
這邊給大家一個建議,如果你的理想薪資是30K,你完全可以跟HR談33~35K,而不是一下子就把自己的底牌暴露了出來,不過肯定不能說的這麼直接,比如原來你的公司是25K,你可以跟HR講原來的薪資是多少,你們這邊能給到我的是多少?你說我這邊希望可以有一個20%漲薪。
最後再說幾句關于招聘平台的,總之,履歷投遞給公司之前,請确認下這家公司到底咋樣,先去百度了解下,别被坑了,每個平台都有一些居心不良的廣告黨等着你上鈎,千萬别上當!!!
提供【免費】的Java架構學習資料,學習技術内容包含有:Spring,Dubbo,MyBatis, RPC, 源碼分析,高并發、高性能、分布式,性能優化,微服務 進階架構開發等等。
Java全套進階資料點這裡免費領取
還有Java核心知識點+全套架構師學習資料和視訊+一線大廠面試寶典+面試履歷模闆可以領取+阿裡美團網易騰訊小米愛奇藝快手哔哩哔哩面試題+Spring源碼合集+Java架構實戰電子書。
于招聘平台的,總之,履歷投遞給公司之前,請确認下這家公司到底咋樣,先去百度了解下,别被坑了,每個平台都有一些居心不良的廣告黨等着你上鈎,千萬别上當!!!
提供【免費】的Java架構學習資料,學習技術内容包含有:Spring,Dubbo,MyBatis, RPC, 源碼分析,高并發、高性能、分布式,性能優化,微服務 進階架構開發等等。
Java全套進階資料點這裡免費領取
還有Java核心知識點+全套架構師學習資料和視訊+一線大廠面試寶典+面試履歷模闆可以領取+阿裡美團網易騰訊小米愛奇藝快手哔哩哔哩面試題+Spring源碼合集+Java架構實戰電子書。