OPPO架構師面試題
1,ArrayList,HashMap底層結構
2,redis2和redis3的區別,redis3內部通訊機制
3,dubbo內部機制,數據怎麼流轉的
4,如何設計一套高併發支付方案,架構如何設計
5,lucence內部結構
6,hibernate和mybatis最本質的區別
7,當前redis集群有哪些玩法,各自優缺點,場景
8,es索引數據多了怎麼辦,如何調優,部署
9,rabbitmq如何實現集群高可用
10,kafka,activemq,rabbitmq本質區別是啥
11,多線程如果線程掛住了怎麼辦
1、基礎與框架
String類能被繼承嗎,為什麼String,Stringbuffer,StringBuilder的區別?
ArrayList和LinkedList有什麼區別
類的實例化順序,比如父類靜態數據,構造函數,字段,子類靜態數據,構造函數,字段,他們的執行順序
用過哪些Map,都有什麼區別,HashMap是線程安全的嗎,併發下使用的Map是什麼,
他們內部原理分別是什麼,比如hashcode,擴容等
HashMap為什麼get和set那麼快,concurrentHashMap為什麼能提高併發
抽象類和接口的區別,類可以繼承多個類麼,接口可以繼承多個接口麼,類可以實現多個接口麼
什麼情況下會發生棧內存溢出?
什麼是nio,原理?
反射中,Class.forName和ClassLoader區別?
tomcat結構,類加載器流程?
講講Spring事務的傳播屬性,AOP原理,動態代理與cglib實現的區別,AOP有哪幾種實現方式?
Spring的beanFactory和factoryBean的區別
Spring加載流程
Spring如何管理事務的
2、多線程
線城池的最大線程數目根據什麼確定
多線程的幾種實現方式,什麼是線程安全,什麼是重排序
volatile的原理,作用,能代替鎖麼
sleep和wait的區別,以及wait的實現原理
Lock與synchronized 的區別,synchronized 的原理,什麼是自旋鎖,偏向鎖,輕量級鎖,什麼叫可重入鎖,什麼叫公平鎖和非公平鎖
用過哪些原子類,他們的參數以及原理是什麼
用過哪些線程池,他們的原理簡單概括下,構造函數的各個參數的含義,比如coreSize,maxsize等
有一個第三方接口,有很多個線程去調用獲取數據,現在規定每秒鐘最多有10個線程同時調用它,如何做到。
spring的controller是單例還是多例,怎麼保證併發的安全
用三個線程按順序循環打印abc三個字母,比如abcabcabc
ThreadLocal用過麼,原理是什麼,用的時候要注意什麼
如果讓你實現一個併發安全的鏈表,你會怎麼做
3、JVM相關
jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點講講對象如何晉升到老年代,幾種主要的jvm參數等
你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms
當出現了內存溢出,你怎麼排錯
JVM內存模型的相關知識瞭解多少
簡單說說你瞭解的類加載器
JAVA的反射機制
4、網絡
http1.0和http1.1有什麼區別
TCP三次握手和四次揮手的流程,為什麼斷開連接要4次,如果握手只有兩次,會出現什麼
TIME_WAIT和CLOSE_WAIT的區別
說說你知道的幾種HTTP響應碼
當你用瀏覽器打開一個鏈接的時候,計算機做了哪些工作步驟
Linux下IO模型有幾種,各自的含義是什麼
TCP/IP如何保證可靠性,數據包由哪些數據組成
5、架構設計與分佈式
tomcat如何調優,各種參數的意義
常見的緩存策略有哪些,你們項目中用到了什麼緩存系統,如何設計的,Redis的使用要注意什麼,持久化方式,內存設置,集群,淘汰策略等
如何防止緩存雪崩
用java自己實現一個LRU
分佈式集群下如何做到唯一序列號
設計一個秒殺系統,30分鐘沒付款就自動關閉交易
如何做一個分佈式鎖
用過哪些MQ,怎麼用的,和其他mq比較有什麼優缺點,MQ的連接是線程安全的嗎
MQ系統的數據如何保證不丟失
分佈式事務的原理,如何使用分佈式事務
什麼是一致性hash
什麼是restful,講講你理解的restful
如何設計建立和保持100w的長連接?
解釋什麼是MESI協議(緩存一致性)
說說你知道的幾種HASH算法,簡單的也可以
什麼是paxos算法
redis和memcached 的內存管理的區別
一個在線文檔系統,文檔可以被編輯,如何防止多人同時對同一份文檔進行編輯更新
6、算法
10億個數字裡裡面找最小的10個
有1億個數字,其中有2個是重複的,快速找到它,時間和空間要最優
2億個隨機生成的無序整數,找出中間大小的值
遍歷二叉樹
7、數據庫
數據庫隔離級別有哪些,各自的含義是什麼,MYsql默認的隔離級別是是什麼,各個存儲引擎優缺點
高併發下,如何做到安全的修改同一行數據,樂觀鎖和悲觀鎖是什麼,INNODB的行級鎖有哪2種,解釋其含義
SQL優化的一般步驟是什麼,怎麼看執行計劃,如何理解其中各個字段的含義,索引的原理?
數據庫會死鎖嗎,舉一個死鎖的例子,mysql怎麼解決死鎖
MYsql的索引實現方式
聚集索引和非聚集索引的區別
數據庫中 BTREE和B+tree區別
阿里二面
1、自我介紹
2、介紹項目,對項目一定要屬性,問的很詳細,所以一定要對項目很瞭解
3、他就和我說遞歸,遞歸是個什麼東西,怎麼調用,已經遞歸的一些問題,和while有什麼區別(我在說的時候結合了JVM來說的)
4、就說序列化,怎麼序列化,為什麼序列化,反序列化會遇到什麼問題,如何解決
5、就是將我的職業規劃,我給他說工作幾年要回成都(差點血崩)
網友面試題蒐集
MySQL InnoDB存儲的文件結構
索引樹是如何維護的?
數據庫自增主鍵可能的問題
Redis的併發競爭問題如何解決了解Redis事務的CAS操作嗎
分析線程池的實現原理和線程的調度過程
動態代理的幾種方式
Spring AOP與IOC的實現
為什麼CGlib方式可以對接口實現代理?
RMI與代理模式
Dubbo的底層實現原理和機制
描述一個服務從發佈到被消費的詳細過程
算法方面考察了一個簡單的數組就地去重問題,用丟棄數組尾部元素的方式實現
分佈式系統怎麼做服務治理
接口的冪等性的概念
Maven出現版本衝突如何解決
JVM垃圾回收機制,何時觸發MinorGC等操作
新生代和老生代的內存回收策略
Eden和Survivor的比例分配等
Synchronized和Lock的區別
==============================================
阿里巴巴:
JVM內存分代
Java 8的內存分代改進
深入分析了Classloader,雙親委派機制
JVM的編譯優化
對Java內存模型的理解,以及其在併發中的應用
指令重排序,內存柵欄等
HashMap的併發問題
瞭解LinkedHashMap的應用嗎
在工作中遇到過哪些設計模式,是如何應用的
==================================================
優酷土豆:
TCP/IP協議
長連接與短連接
mapreduce過程
多路歸併的時間複雜度
海量url去重類問題
Java NIO使用
倒排索引的原理
對分詞技術的瞭解
==================================================
搜狐新聞:
消息中間件如何解決消息丟失問題
Dubbo的服務請求失敗怎麼處理
重連機制會不會造成錯誤
對分佈式事務的理解
深入分析幾個設計模式
========================================
58趕集:
HTTP請求的報文格式Spring的事務實現原理
實際場景問題,大量用戶數據如何在內存中排序和去重
緩存機器增刪如何對系統影響最小,一致性哈希的實現
Redis持久化的幾種方式
Redis的緩存失效策略
實際場景問題解決,典型的TOP K問題
實際場景問題,海量登錄日誌如何排序和處理SQL操作,主要是索引和聚合函數的應用
=========================================
國美在線:
SQL語句編寫
MySQL的幾種優化
Spring行級鎖
Spring衍生的相關其他組件整理
RMI的幾種協議和實現框架
BTree相關的操作
數據庫鎖表的相關處理
考察跳臺階問題
=========================================
陸金所面試題
1、多線程和併發的聯繫與區別?
2、單例模式下如何實現多線程?什麼是懶漢單例、餓漢單例?
3、反射的原理,反射創建類實例的三種方式是什麼?
4、如何實現負載均衡,有哪些算法可以實現?
5、Memcache的原理,哪些數據適合放在緩存中?
6、Zookeeper的用途,選舉的原理是什麼?
7、說說你常用的設計模式,觀察者模式是什麼原理?
8、說說你對Spring的理解,非單例注入的原理?它的生命週期?循環注入的原理,aop的實現原理,說說aop中的幾個術語,它們是怎麼相互工作的?
9、JVM中類加載機制是什麼?創建一個多線程後這個線程對象是放在什麼區域的?垃圾回收算法的實現原理?
10、Linux是怎麼分區的?對shell腳本是否熟悉?
11、Mybatis的底層實現原理,Mybatis和Hibernate的區別,為什麼Mybatis會取代Hibernate?
唯品會面試題
vip面試題:
1.hashmap為啥不安全(這個忘記了)
2.concurrenthash實現(默認容量,什麼時候擴容,怎麼擴容)
3.線程池(包含什麼,core、max聯繫)
5.synchronized原理
6.volatile原理
7.jmm(主內存、工作內存【緩存行什麼的】、happens-before、)
8.有哪些無鎖數據結構?無鎖實現的原理?
9.設計模式(裝飾器設計模式、代理模式、單例模式、工廠模式(3種))
10.dubbo設計思路、netty原理
11.一次rpc請求的過程
12.MySQL怎麼創建合理索引、索引怎麼優化?
13.b+tree怎麼分裂、什麼時候分裂、為什麼是平衡的?
14.MySQL事務實現原理,ACID實現原理
15.MySQL怎麼優化table scan?(掃描區,因為區是連續的64個頁,可以避免隨機掃描)
16.算法:有3n+1個數字,其中3n箇中是重複的,只有1個是不重複的,怎麼找出來?(遞歸方式)
17.如果還問的話,可能會問的(怎麼接收一個網絡包,怎麼優化文件io、網絡io,建議我多看io和網絡方面的資料)
以上面試題來自網絡整理;
閱讀更多 碼農的一天 的文章