前言
BATJ是百度、阿里巴巴、騰訊、京東四大互聯網公司簡稱。java
- 以BATJ爲表明的大型企業是中國人工智能投資市場的重要「參與者」。
- 阿里巴巴加大對科技型企業的投資,涵蓋計算機視覺、語音識別、天然語言處理等技術領域。
- 騰訊採起覆蓋式的遊戲方式,以bocai業爲戰略,涉及汽車運輸、醫療保健、金融和智能家居等多個行業。
- 百度的投資採起「少而精」的策略。投資和收購同時進行,涉及汽車運輸、智能家居和新零售工業。
- 京東有大量投資企業,覆蓋面廣的麪粉行業。它專一於自動駕駛領域,也涉及家庭和醫療行業。
- 亞洲目前有60多家「獨角獸」企業,價值超過10億美圓,其中41家由中國四大金剛BATJ投資。
要進BATJ的難度可想而知,下面分享給你們分享一下騰訊資深架構師 精心整理的 刷掉90% 候選人的BATJ面試題mysql
話很少說直接進入主題面試
BATJ面試題
- hashmap hastable 底層實現什麼區別?hashtable和concurrenthashtable呢?
- hashmap和treemap什麼區別?低層數據結構是什麼?
- 線程池用過嗎都有什麼參數?底層如何實現的?
- sychnized和Lock什麼區別?sychnize 什麼狀況狀況是對象鎖? 何時是全局鎖爲何?
- ThreadLocal 是什麼底層如何實現?寫一個例子唄?
- volitile的工做原理?
- cas知道嗎? 如何實現的?
- 請用至少四種寫法寫一個單例模式?
- 請介紹一下JVM內存模型??用過什麼垃圾回收器都說說唄
- 線上發送頻繁full gc如何處理? CPU 使用率太高怎麼辦?
- 如何定位問題?如何解決說一下解決思路和處理方法
- 講講類加載機制唄都有哪些類加載器,這些類加載器都加載哪些文件?
- 手寫一下類加載Demo
- 知道osgi嗎? 他是如何實現的???
- 請問你作過哪些JVM優化?使用什麼方法達到什麼效果?
- classforName("java.lang.String")和String classgetClassLoader() LoadClass("java.lang.String") 什麼區別啊?
- 探查Tomcat的運行機制即框架?
- 分析Tomcat線程模型?
- Tomcat系統參數認識和調優?
- MySQL底層B+Tree機制?
- SQL執行計劃詳解?
- 索引優化詳解?
- SQL語句如何優化?
- spring都有哪些機制?AOP底層如何實現的啊IOC呢?
- cgLib知道嗎?他和jdk動態代理什麼區別?手寫一個jdk動態代理唄?
- 使用mysq1索引都有哪些原則? ?索引什麼數據結構? 3+tree 和B tree 什麼區別?
- MySQL有哪些存儲引擎啊?都有啥區別? 要詳細!
- 設計高併發系統數據庫層面該怎麼設計??數據庫鎖有哪些類型?如何實現呀?
- 如何設計能夠動態擴容縮容的分庫分表方案?
- 用過哪些分庫分表中間件,有啥優勢和缺點?講一下你瞭解的分庫分表中間件的底層實現原理?
- 我如今有一個未分庫分表的系統,之後系統需分庫分表,如何設計,讓未分庫分表的系統動態切換到分庫分表的系統上?TCC? 那若出現網絡緣由,網絡連不通怎麼辦啊?
- RPC通訊原理,分佈式通訊原理
- 分佈式尋址方式都有哪些算法知道一致性hash嗎?手寫一下java實現代碼??你若userId取模分片,那我要查一段連續時間裏的數據怎麼辦???
- 如何解決分庫分表主鍵問題?有什麼實現方案??
- redis和memcheched 什麼區別?爲何單線程的redis比多線程的memched效率要高啊?
- reids的主從複製是怎麼實現的redis的集羣模式是如何實現的呢redis的key是如何尋址的啊?
- 使用redis如何設計分佈式鎖?使用zk能夠嗎?如何實現啊這兩種哪一個效率更高啊??
- 知道redis的持久化嗎都有什麼缺點優勢啊? ?具體底層實現呢?
- redis過時策略都有哪些LRU 寫一下java版本的代碼吧??
- 說一下dubbo的實現過程註冊中心掛了能夠繼續通訊嗎??
- dubbo支持哪些序列化協議?hessian 說一下hessian的數據結構PB知道嗎爲啥PB效率是最高的啊??
- 知道netty嗎'netty能夠幹嗎呀NIO,BIO,AIO 都是什麼啊有什麼區別啊?
- 爲何要進行系統拆分啊?拆分不用dubbo能夠嗎?dubbo和thrift什麼區別啊?
- 爲何使用消息隊列啊?消息隊列有什麼優勢和缺點啊?
- 如何保證消息隊列的高可用啊?如何保證消息不被重複消費啊
- kafka ,activemq,rabbitmq ,rocketmq都有什麼優勢,缺點啊???
- 若是讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路
- TCP三次握手,四層分手的工做流程畫一下流程圖爲何不是四次五次或者二次啊?
- 畫一下https的工做流程?具體如何實現啊?如何防止被抓包啊??
- 源碼中所用到的經典設計思想及經常使用設計模式
- 系統架構如何選擇合適日誌技術(log4j、log4j二、slf4j、jcl…….)
- springAOP的原理,springAOP和Aspectj的關係,springAOP的源碼問題
- dubbo框架的底層通訊原理
- RPC通訊原理,分佈式通訊原理
- 如何利用springCloud來架構微服務項目
- 如何正確使用docker技術
- springMVC的底層原理、如何從源碼來分析其原理
- mybaits的底層實現原理,如何從源碼來分析mybaits
- mysql的索引原理,索引是怎麼實現的
- 索引的底層算法、如何正確使用、優化索引
- springboot如何快速構建系統
- zk原理知道嗎?zk均可以幹什麼?Paxos算法知道嗎?說一下原理和實現?
- 若是讓你寫一個消息隊列,該如何進行架構設計啊?說一下你的思路
- 分佈式事務知道嗎? 大家怎麼解決的?
- 請問你作過哪些JVM優化?使用什麼方法達到什麼效果?
- 哪些狀況下的對象會被垃圾回收機制處理掉?
- 講一下常見編碼方式?
- utf-8編碼中的中文佔幾個字節;int型幾個字節?
- 靜態代理和動態代理的區別,什麼場景使用?
- Java的異常體系
- 談談你對解析與分派的認識。
- 修改對象A的equals方法的簽名,那麼使用HashMap存放這個對象實例的時候,會調用哪一個equals方法?
- Java中實現多態的機制是什麼?
- 如何將一個Java對象序列化到文件裏?
- 說說你對Java反射的理解
- 說說你對Java註解的理解
- 說說你對依賴注入的理解
- 說一下泛型原理,並舉例說明
- Java中String的瞭解
- String爲何要設計成不可變的?
- Object類的equal和hashCode方法重寫,爲何?
- MVC MVP MVVM原理和區別
- 你所知道的設計模式有哪些?
- 項目中經常使用的設計模式
- 手寫生產者/消費者模式
- 寫出觀察者模式的代碼
- 適配器模式,裝飾者模式,外觀模式的異同?
- 用到的一些開源框架,介紹一個看過源碼的,內部實現過程。
- 談談對RxJava的理解
- RxJava的功能與原理實現
- RxJava的做用,與平時使用的異步操做來比的優缺點
- 說說EventBus做用,實現方式,代替EventBus的方式
- 從0設計一款App總體架構,如何去作?
- 說一款你認爲當前比較火的應用並設計(好比:直播APP,P2P金融,小視頻等)
- 談談對java狀態機理解
- Fragment若是在Adapter中使用應該如何解耦?
- Binder機制及底層實現
- 對於應用更新這塊是如何作的?(解答:灰度,強制更新,分區域更新)?
- 實現一個Json解析器(能夠經過正則提升速度)
從上面能夠看出,大廠問的最多的就是原理,源碼,底層,框架等等redis
到這裏光高死記硬背是行不通的,還要有必定的經驗支撐,否則不少問題你都沒辦法回答算法
在這裏簡歷很重要,不少時候面試官都是根據簡從來問的,看你對本身簡歷上的知識點,項目的熟悉程度吧,不懂的必定不要亂寫spring