前言
作為一個開發(fā)人員径筏,你是否面上了自己理想的公司滋恬,薪資達到心中理想的高度?
面試:如果不準備充分的面試带斑,完全是浪費時間勋拟,更是對自己的不負責敢靡。
今天給大家分享下我整理的Java架構(gòu)面試專題及答案,其中大部分都是大企業(yè)面試常問的面試題赶站,可以對照這查漏補缺,當然了想括,這里所列的肯定不可能覆蓋全部方式团秽,不過也希望能對即將找工作的朋友起到一些幫助!
并發(fā)編程:
什么是多線程并發(fā)和并行踪栋?
什么是線程安全問題图毕?
什么是共享變量的內(nèi)存可見性問題予颤?
什么是Java中原子性操作?
什么是Java中的CAS操作,AtomicLong實現(xiàn)原理党饮?
什么是Java指令重排序驳庭?
Java中Synchronized關鍵字的內(nèi)存語義是什么饲常?
Java中Volatile關鍵字的內(nèi)存語義是什么?
什么是偽共享,為何會出現(xiàn)柒竞,以及如何避免播聪?
什么是可重入鎖、樂觀鎖踩晶、悲觀鎖枕磁、公平鎖、非公平鎖茸苇、獨占鎖学密、共享鎖?
講講ThreadLocal 的實現(xiàn)原理彤守?
ThreadLocal 作為變量的線程隔離方式哭靖,其內(nèi)部是如何做的试幽?
說說InheritableThreadLocal 的實現(xiàn)原理?
InheritableThreadLocal 是如何彌補 ThreadLocal 不支持繼承的特性起宽?
CyclicBarrier內(nèi)部的實現(xiàn)與 CountDownLatch 有何不同济榨?
隨機數(shù)生成器 Random 類如何使用 CAS 算法保證多線程下新種子的唯一性擒滑?
ThreadLocalRandom 是如何利用 ThreadLocal 的原理來解決 Random 的局限性?
Spring 框架中如何使用 ThreadLocal 實現(xiàn) request scope 作用域 Bean?
并發(fā)包中鎖的實現(xiàn)底層(對AQS的理解)卸奉?
講講獨占鎖 ReentrantLock 原理榄棵?
談談讀寫鎖 ReentrantReadWriteLock 原理?
StampedLock 鎖原理的理解拧略?
談下對基于鏈表的非阻塞無界隊列 ConcurrentLinkedQueue 原理的理解瘪弓?
ConcurrentLinkedQueue 內(nèi)部是如何使用 CAS 非阻塞算法來保證多線程下入隊出隊操作的線程安全?
基于鏈表的阻塞隊列 LinkedBlockingQueue 原理川无。
阻塞隊列LinkedBlockingQueue 內(nèi)部是如何使用兩個獨占鎖 ReentrantLock 以及對應的條件變量保證多線程先入隊出隊操作的線程安全虑乖?
分析下JUC 中倒數(shù)計數(shù)器 CountDownLatch 的使用與原理疹味?
CountDownLatch 與線程的 Join 方法區(qū)別是什么?
講講對JUC 中回環(huán)屏障 CyclicBarrier 的使用诫咱?
CyclicBarrier內(nèi)部的實現(xiàn)與 CountDownLatch 有何不同继找?
Semaphore 的內(nèi)部實現(xiàn)是怎樣的婴渡?
并發(fā)組件CopyOnWriteArrayList 是如何通過寫時拷貝實現(xiàn)并發(fā)安全的 List?
JVM
Java 內(nèi)存分配哄尔?
Java 堆的結(jié)構(gòu)是什么樣子的柠并?
什么是堆中的永久代(Perm Gen space)?
說說各個區(qū)域的作用臼予?
Java 中會存在內(nèi)存泄漏嗎,簡述一下窄锅?
Java 類加載過程缰雇?
描述一下 JVM 加載 Class 文件的原理機制?
什么是類加載器械哟?
類加載器有哪些?
什么是tomcat類加載機制锋爪?
類加載器雙親委派模型機制?
什么是GC? 為什么要有 GC河泳?
簡述一下Java 垃圾回收機制年栓?
如何判斷一個對象是否存活某抓?
垃圾回收的優(yōu)點和原理,并考慮 2 種回收機制汉矿?
垃圾回收器的基本原理是什么洲拇?
垃圾回收器可以馬上回收內(nèi)存嗎曲尸?有什么辦法主動通知虛擬機進行垃圾回收另患?
深拷貝和淺拷貝?
System.gc() 和 Runtime.gc() 會做些什么鸦列?
什么是分布式垃圾回收(DGC)鹏倘?它是如何工作的纤泵?
串行(serial)收集器和吞吐量(throughput)收集器的區(qū)別是什么?
在 Java 中,對象什么時候可以被垃圾回收涉馅?
簡述Minor GC 和 Major GC黄虱?
Java 中垃圾收集的方法有哪些?
講講你理解的性能評價及測試指標桥爽?
常用的性能優(yōu)化方式有哪些昧识?
說說分布式緩存和一致性哈希跪楞?
同步與異步?阻塞與非阻塞缕碎?
什么是GC調(diào)優(yōu)池户?
常見異步的手段有哪些校焦?
Spring
為什么需要代理模式?
講講靜態(tài)代理模式的優(yōu)點及其瓶頸熏迹?
對Java 接口代理模式的實現(xiàn)原理的理解注暗?
如何使用 Java 反射實現(xiàn)動態(tài)代理墓猎?
Java 接口代理模式的指定增強毙沾?
談談對Cglib 類增強動態(tài)代理的實現(xiàn)?
怎么理解面向切面編程的切面寇仓?
講解OOP與AOP的簡單對比烤宙?
講解JDK 動態(tài)代理和 CGLIB 代理原理以及區(qū)別躺枕?
講解Spring 框架中基于 Schema 的 AOP 實現(xiàn)原理供填?
講解Spring 框架中如何基于 AOP 實現(xiàn)的事務管理近她?
談談對控制反轉(zhuǎn)的設計思想的理解粘捎?
怎么理解 Spring IOC 容器备闲?
Spring IOC 怎么管理 Bean 之間的依賴關系恬砂,怎么避免循環(huán)依賴?
對Spring IOC 容器的依賴注入的理解泻骤?
說說對Spring IOC 的單例模式和高級特性漆羔?
BeanFactory 和 FactoryBean 有什么區(qū)別?
BeanFactory 和 ApplicationContext 又有什么不同狱掂?
Spring 在 Bean 創(chuàng)建過程中是如何解決循環(huán)依賴的演痒?
談談Spring Bean 創(chuàng)建過程中的設計模式?
數(shù)據(jù)庫
MySQL 有哪些存儲引擎扒鞑摇鸟顺?都有什么區(qū)別?
Float器虾、Decimal 存儲金額的區(qū)別讯嫂?
Datetime、Timestamp 存儲時間的區(qū)別欧芽?
Char、Varchar葛圃、Varbinary 存儲字符的區(qū)別千扔?
對比一下B+樹索引和 Hash索引?
MySQL索引類型有库正?
如何管理 MySQL索引曲楚?
對Explain參數(shù)及重要參數(shù)的理解?
索引利弊是什么及索引分類褥符?
聚簇索引和非聚簇索引的區(qū)別洞渤?
B+tree 如何進行優(yōu)化?索引遵循哪些原則属瓣?
索引與鎖有什么關系载迄?
還有什么其他的索引類型,各自索引有哪些優(yōu)缺點抡蛙?
談談對Innodb事務的理解护昧?
說說數(shù)據(jù)庫事務特點及潛在問題?
什么是MySQL隔離級別粗截?
有多少種事務失效的場景惋耙,如何解決?
一致性非鎖定讀和一致性鎖定讀是什么熊昌?
Innodb如何解決幻讀绽榛?
講講Innodb行鎖?
死鎖及監(jiān)控是什么婿屹?
自增長與鎖 灭美,鎖的算法,鎖問題昂利,鎖升級是什么届腐?
樂觀鎖的線程如何做失敗補償?
高并發(fā)場景(領紅包)如何防止死鎖蜂奸,保證數(shù)據(jù)一致性犁苏?
談談MySQL的鎖并發(fā)?
查詢優(yōu)化的基本思路是什么扩所?
說說MySQL讀寫分離围详、分庫分表?
表結(jié)構(gòu)對性能有什么影響?
淺談索引優(yōu)化祖屏?
說說Sql優(yōu)化的幾點原則助赞?
MySQL表設計及規(guī)范?
說說MySQL幾種存儲引擎應用場景赐劣?
MySQL常用優(yōu)化方式有哪些嫉拐?
MySQL常用監(jiān)控?
MySQL瓶頸分析魁兼?
緩存
redis數(shù)據(jù)結(jié)構(gòu)有哪些婉徘?
Redis緩存穿透,緩存雪崩咐汞?
如何使用Redis來實現(xiàn)分布式鎖盖呼?
Redis的并發(fā)競爭問題如何解決?
Redis持久化的幾種方式化撕,優(yōu)缺點是什么几晤,怎么實現(xiàn)的?
Redis的緩存失效策略植阴?
Redis集群蟹瘾,高可用圾浅,原理?
Redis緩存分片憾朴?
Redis的數(shù)據(jù)淘汰策略狸捕?
redis隊列應用場景?
分布式使用場景(儲存session)众雷?
網(wǎng)絡編程
TCP建立連接和斷開連接的過程灸拍?
HTTP協(xié)議的交互流程,HTTP和HTTPS的差異砾省,SSL的交互流程鸡岗?
TCP的滑動窗口協(xié)議有什么用?
HTTP協(xié)議都有哪些方法编兄?
Socket交互的基本流程轩性?
講講tcp協(xié)議(建連過程,慢啟動翻诉,滑動窗口炮姨,七層模型)?
webservice協(xié)議(wsdl/soap格式碰煌,與restt辦議的區(qū)別)舒岸?
說說Netty線程模型,什么是零拷貝芦圾?
TCP三次握手蛾派、四次揮手?
DNS解析過程个少?
TCP如何保證數(shù)據(jù)的可靠傳輸?shù)模?/p>
分布式
什么是CAP定理洪乍?
說說CAP理論和BASE理論?
什么是最終一致性夜焦?最終一致性實現(xiàn)方式壳澳?
什么是一致性Hash?
講講分布式事務茫经?
如何實現(xiàn)分布式鎖巷波?
如何實現(xiàn)分布式 Session?
如何保證消息的一致性?
負載均衡的理解淮腾?
正向代理和反向代理发框?
CDN實現(xiàn)原理羽戒?
怎么提升系統(tǒng)的QPS和吞吐皇钞?
Dubbo的底層實現(xiàn)原理和機制?
描述一個服務從發(fā)布到被消費的詳細過程旬牲?
分布式系統(tǒng)怎么做服務治理废酷?
消息中間件如何解決消息丟失問題淋昭?
Dubbo的服務請求失敗怎么處理?
對分布式事務的理解终佛?
如何實現(xiàn)負載均衡,有哪些算法可以實現(xiàn)?
Zookeeper的用途,選舉的原理是什么?
講講數(shù)據(jù)的垂直拆分水平拆分俊嗽?
zookeeper原理和適用場景?
zookeeper watch機制铃彰?
redis/zk節(jié)點宕機如何處理乌询?
分布式集群下如何做到唯一序列號?
用過哪些MQ,怎么用的,和其他mq比較有什么優(yōu)缺點,MQ的連接是線程安全的嗎豌研?
MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失?
列舉出能想到的數(shù)據(jù)庫分庫分表策略唬党?