百度(三面)
百度一面(現場)
- 自我介紹
- Java中的多態
- 爲什麼要同時重寫hashcode和equals
- Hashmap的原理
- Hashmap如何變線程安全,每種方式的優缺點
- 垃圾回收機制
- Jvm的參數你知道的說一下
- 設計模式瞭解的說一下
- 手撕一個單例模式
- 算法題目
- 手撕算法:反轉單鏈表
- 手撕算法:實現類似微博子結構的數據結構,輸入一系列父子關係,輸出一個類似微博評論的父子結構圖
- 手寫java多線程
- 手寫java的soeket編程,服務端和客戶端
- 手撕算法:爬樓梯,寫出狀態轉移方程
- 智力題:時針分針什麼時候重合
百度二面(現場)
- 自我介紹
- 項目介紹
- 服務器如何負載均衡,有哪些算法,哪個比較好,一致性哈希原理,怎麼避免DDOS攻擊請求打到少數機器?
- TCP連接中的三次握手和四次揮手,四次揮手的最後一個ack的作用是什麼,爲什麼要time wait,爲什麼是2msl?
- 數據庫的備份和恢復怎麼實現的,主從複製怎麼做的,什麼時候會出現數據不一致,如何解決?
- Linux查看cpu佔用率高的進程
- 手撕算法:給定一個數字三角形,找到從頂部到底部的最小路徑和。每一步可以移動到下面一行的相鄰數字上。
- 然後繼續在這個問題上擴展
- 求出最短那條的路徑
- 遞歸求出所有的路徑
- 設計模式講一下熟悉的
- 會不會濫用設計模式?
- 多線程條件變量爲什麼要在while體裏?
- 你遇到什麼挫折,怎麼應對和處理?
百度三面(現場)
- 自我介紹
- 項目介紹
- Redis的特點
- Redis的持久化怎麼做,aof和rdb,有什麼區別,有什麼優缺點?
- Redis使用哨兵部署會有什麼問題?【我說需要擴容的話還是得集羣部署。】
- 說一下JVM內存模型把,有哪些區,分別幹什麼的?
- 說一下gc算法,分代回收說下
- MySQL的引擎講一下,有什麼區別,使用場景呢?
- 分佈式事務瞭解麼?
- 反爬蟲的機制,有哪些方式?
阿里中間件(四面)
Java中間件一面
技術一面考察範圍:
- 重點問了Java線程鎖:synchronized 和ReentrantLock相關的底層實現
- 線程池的底層實現以及常見的參數
- 數據結構基本都問了一遍,鏈表、隊列等
- Java內存模型:常問的JVM分代模型,以及JDK1.8後的區別,最後還問了JVM相關的調優參數
- 分佈式鎖的實現比較
技術一面題目:
1:自我介紹
2:擅長哪方面的技術?
3;java有哪些鎖中類?(樂觀鎖&悲觀鎖、可重入鎖&Synchronize等)
4:比較重要的數據結構,如鏈表,隊列,棧的基本原理及大致實現
5:J.U.C下的常見類的使用。Threadpool的深入考察;blockingQueue的使用
6:Java內存分代模型,GC算法,JVM常見的啓動參數;CMS算法的過程
7:Volatile關鍵字有什麼用(包括底層原理)?
8:線程池的調優策略
9:Spring cloud的服務註冊與發現是怎麼設計的?
10:分佈式系統的全局id如何實現
11:分佈式鎖的方案,redis和zookeeper那個好,如果是集羣部署,高併發情況下那個性能更好?
Java中間件二面
技術二面考察範圍:
- 問了項目相關的技術實現細節
- 數據庫相關:索引、索引底層實現、mysql相關的行鎖、表鎖等
- redis相關:架構設計、數據一致性問題
- 容器:容器的設計原理等
技術二面題目:
- 參與的項目,選一個,技術難度在哪裏?
- Collections.sort底層排序方式
- 負載均衡的原理
- 設計模式與重構,談談你對重構的理解
- 談談redis相關的集羣有哪些成熟方案?
- 再談談一致hash算法(redis)
- 數據庫索引,B+樹的特性和建樹過程
- Mysql相關的行鎖,表鎖、樂觀鎖、悲觀鎖
- 談談多線程和併發工具的使用
- 談談redis的架構和組件
- Redis的數據一致性問題(分佈式多節點環境&單機環境)
- Docker容器
Java中間件三面
技術三面考察範圍:
- 主要談到了高併發的實現方案
- 以及中間件:redis、rocketmq、kafka等的架構設計思路
- 最後問了平時怎麼提升技術的
技術三面題目:
- 高併發情況下,系統是如何支撐大量的請求的?
- 接着上面的問題,延伸到了中間件,kafka、redis、rocketmq、mycat等設計思路和適用場景等
- 最近上過哪些技術網站?最近再看哪些書?
- 工作和生活中遇見最大的挑戰,怎麼去克服?
- 未來有怎樣的打算
Java中間件四面
最後,你懂的,主要就是HR走流程了,主要問了未來的職業規劃。
螞蟻中間件團隊面試題
螞蟻中間件一面
- 自我介紹
- JVM垃圾回收算法和垃圾回收器有哪些,最新的JDK採用什麼算法?
- 新生代和老年代的回收機制
- 講一下ArrayList和linkedlist的區別,ArrayList與HashMap的擴容方式
- Concurrenthashmap1.8後的改動
- Java中的多線程,以及線程池的增長策略和拒絕策略瞭解麼?
- Tomcat的類加載器瞭解麼?
- Spring的ioc和aop,Springmvc的基本架構,請求流程
- HTTP協議與Tcp有什麼區別,http1.0和2.0的區別?
- Java的網絡編程,講講NIO的實現方式,與BIO的區別,以及介紹常用的NIO框架
- 索引什麼時候會失效變成全表掃描?
- 介紹下分佈式的paxos和raft算法
螞蟻中間件二面
- 你在項目中怎麼用到併發的?
- 消息隊列的使用場景,談談Kafka
- 你說了解分佈式服務,那麼你怎麼理解分佈式服務?
- Dubbo和Spring Clound的區別,以及使用場景
- 講一下docker的實現原理,以及與JVM的區別
- MongoDB、Redis和Memcached的應用場景,各自優勢
- MongoDB有事務嗎?
- Redis說一下sorted set底層原理
- 講講Netty爲什麼併發高,相關的核心組件有哪些?
螞蟻中間件三面
- 完整的畫一個分佈式集羣部署圖,從負載均衡到後端數據庫集羣
- 分佈式鎖的方案,Redis和Zookeeper哪個好,如果是集羣部署,高併發情況下哪個性能更好?
- 分佈式系統的全局id如何實現?
- 數據庫萬級變成億級,你如何來解決?
- 常見的服務器雪崩是由什麼引起的,如何來防範?
- 異地容災怎麼實現?
- 常用的高併發技術解決方案有哪些,以及對應的解決步驟?
面試答案
這份面試文件涵蓋了Java開發1至5年的面試常見技術問題,整體分爲當季最新系列、大廠面試真題系列、技術系統分類系列三部分。(純文字文本佔內存46.97MB)
需要的朋友,>點擊此處,免費領取!
- 2020年最新面試題
- 大廠面試真題
- 系統技術分類系列
JVM、MySQL、Mybatis、MongoDB、Redis、Spring、Spring boot、Spring cloud、Kafka、RabbitMQ、Nginx......
以上所有的面試資料均可免費領取,需要的朋友,>點擊此處,免費領取!