前言
面試:如果不準備充分的面試,完全是浪費時間,更是對自己的不負責,
今天給大家分享下我整理的BATJava架構面試專題及答案,其中大部分都是大企業面試常問的面試題,可以對照這查漏補缺,當然了,這里所列的肯定不可能覆寫全部方式,不過也希望能對即將找作業的朋友起到一些幫助!
面試題以及分類整理如下:
Java基礎:
- 介面與抽象類的區別?
- Java中的例外有哪幾類?分別怎么使用?
- 常用的集合類有哪些?比如List如何排序?
- ArrayList和LinkedList內部的實作大致是怎樣的?他們之間的區別和優缺點?
- 記憶體溢位是怎么回事?請舉一個例子?
- ==和equals的區別?
- hashCode方法的作用?
- NIO是什么?適用于何種場景?
- HashMap實作原理,如何保證HashMap的執行緒安全?
- JVM記憶體結構,為什么需要GC?
- NIO模型,select/epoll的區別,多路復用的原理
- Java中一個字符占多少個位元組,擴展再問int, long, double占多少位元組
- 創建一個類的實體都有哪些辦法?
- final/finally/finalize的區別?
- Session/Cookie的區別?
- String/StringBuffer/StringBuilder的區別,擴展再問他們的實作?
- Servlet的生命周期?
- 如何用Java分配一段連續的1G的記憶體空間?需要注意些什么?
- Java有自己的記憶體回識訓制,但為什么還存在記憶體泄露的問題呢?
- 什么是java序列化,如何實作java序列化?(寫一個實體)?
- String s = new String("abc");創建了幾個String Object?

多執行緒/并發:
- 如何創建執行緒?如何保證執行緒安全?
- 如何實作一個執行緒安全的資料結構
- 如何避免死鎖
- Volatile關鍵字的作用?
- HashMap在多執行緒環境下使用需要注意什么?為什么?
- Java程式中啟動一個執行緒是用run還是start?
- 什么是守護執行緒?有什么用?
- 什么是死鎖?如何避免
- 執行緒和行程的差別是什么?
- Java里面的Threadlocal是怎樣實作的?
- ConcurrentHashMap的實作原理是?
- sleep和wait區別
- notify和notifyAll區別
- volatile關鍵字的作
- ThreadLocal的作用與實作
- 兩個執行緒如何串行執行
- 背景關系切換是什么含義
- 可以運行時kill掉一個執行緒嗎?
- 什么是條件鎖、讀寫鎖、自旋鎖、可重入鎖?
- 執行緒池ThreadPoolExecutor的實作原理?

JVM
- Java 記憶體分配?
- Java 堆的結構是什么樣子的?
- 什么是堆中的永久代(Perm Gen space)?
- 說說各個區域的作用?
- Java 中會存在記憶體泄漏嗎,簡述一下?
- Java 類加載程序?
- 描述一下 JVM 加載 Class 檔案的原理機制?
- 什么是類加載器?
- 類加載器有哪些?
- 什么是tomcat類加載機制?
- 類加載器雙親委派模型機制?
- 什么是GC? 為什么要有 GC?
- 簡述一下Java 垃圾回識訓制?
- 如何判斷一個物件是否存活?
- 垃圾回收的優點和原理,并考慮 2 種回識訓制?
- 垃圾回收器的基本原理是什么?
- 垃圾回收器可以馬上回收記憶體嗎?有什么辦法主動通知虛擬機進行垃圾回收?
- 深拷貝和淺拷貝?
- System.gc() 和 Runtime.gc() 會做些什么?
- 什么是分布式垃圾回收(DGC)?它是如何作業的?
- 串行(serial)收集器和吞吐量(throughput)收集器的區別是什么?
- 在 Java 中,物件什么時候可以被垃圾回收?
- 簡述Minor GC 和 Major GC?
- Java 中垃圾收集的方法有哪些?
- 講講你理解的性能評價及測驗指標?
- 常用的性能優化方式有哪些?
- 說說分布式快取和一致性哈希?
- 同步與異步?阻塞與非阻塞?
- 什么是GC調優?
- 常見異步的手段有哪些?

Spring
- 為什么需要代理模式?
- 講講靜態代理模式的優點及其瓶頸?
- 對Java 介面代理模式的實作原理的理解?
- 如何使用 Java 反射實作動態代理?
- Java 介面代理模式的指定增強?
- 談談對Cglib 類增強動態代理的實作?
- 怎么理解面向切面編程的切面?
- 講解OOP與AOP的簡單對比?
- 講解JDK 動態代理和 CGLIB 代理原理以及區別?
- 講解Spring 框架中基于 Schema 的 AOP 實作原理?
- 講解Spring 框架中如何基于 AOP 實作的事務管理?
- 談談對控制反轉的設計思想的理解?
- 怎么理解 Spring IOC 容器?
- Spring IOC 怎么管理 Bean 之間的依賴關系,怎么避免回圈依賴?
- 對Spring IOC 容器的依賴注入的理解?
- 說說對Spring IOC 的單例模式和高級特性?
- BeanFactory 和 FactoryBean 有什么區別?
- BeanFactory 和 ApplicationContext 又有什么不同?
- Spring 在 Bean 創建程序中是如何解決回圈依賴的?
- 談談Spring Bean 創建程序中的設計模式?

資料庫
- MySQL 有哪些存盤引擎啊?都有什么區別?
- Float、Decimal 存盤金額的區別?
- Datetime、Timestamp 存盤時間的區別?
- Char、Varchar、Varbinary 存盤字符的區別?
- 對比一下B+樹索引和 Hash索引?
- MySQL索引型別有?
- 如何管理 MySQL索引?
- 對Explain引數及重要引數的理解?
- 索引利弊是什么及索引分類?
- 聚簇索引和非聚簇索引的區別?
- B+tree 如何進行優化?索引遵循哪些原則?
- 索引與鎖有什么關系?
- 還有什么其他的索引型別,各自索引有哪些優缺點?
- 談談對Innodb事務的理解?
- 說說資料庫事務特點及潛在問題?
- 什么是MySQL隔離級別?
- 有多少種事務失效的場景,如何解決?
- 一致性非鎖定讀和一致性鎖定讀是什么?
- Innodb如何解決幻讀?
- 講講Innodb行鎖?
- 死鎖及監控是什么?
- 自增長與鎖 ,鎖的演算法,鎖問題,鎖升級是什么?
- 樂觀鎖的執行緒如何做失敗補償?
- 高并發場景(領紅包)如何防止死鎖,保證資料一致性?
- 談談MySQL的鎖并發?
- 查詢優化的基本思路是什么?
- 說說MySQL讀寫分離、分庫分表?
- 表結構對性能有什么影響?
- 淺談索引優化?
- 說說Sql優化的幾點原則?
- MySQL表設計及規范?
- 說說MySQL幾種存盤引擎應用場景?
- MySQL常用優化方式有哪些?
- MySQL常用監控?
- MySQL瓶頸分析?

快取
- redis資料結構有哪些?
- Redis快取穿透,快取雪崩?
- 如何使用Redis來實作分布式鎖?
- Redis的并發競爭問題如何解決?
- Redis持久化的幾種方式,優缺點是什么,怎么實作的?
- Redis的快取失效策略?
- Redis集群,高可用,原理?
- Redis快取分片?
- Redis的資料淘汰策略?
- redis佇列應用場景?
- 分布式使用場景(儲存session)?

網路編程
- TCP建立連接和斷開連接的程序?
- HTTP協議的互動流程,HTTP和HTTPS的差異,SSL的互動流程?
- TCP的滑動視窗協議有什么用?
- HTTP協議都有哪些方法?
- Socket互動的基本流程?
- 講講tcp協議(建連程序,慢啟動,滑動視窗,七層模型)?
- webservice協議(wsdl/soap格式,與restt辦議的區別)?
- 說說Netty執行緒模型,什么是零拷貝?
- TCP三次握手、四次揮手?
- DNS決議程序?
- TCP如何保證資料的可靠傳輸的?
分布式
- 什么是CAP定理?
- 說說CAP理論和BASE理論?
- 什么是最終一致性?最終一致性實作方式?
- 什么是一致性Hash?
- 講講分布式事務?
- 如何實作分布式鎖?
- 如何實作分布式 Session?
- 如何保證訊息的一致性?
- 負載均衡的理解?
- 正向代理和反向代理?
- CDN實作原理?
- 怎么提升系統的QPS和吞吐?
- Dubbo的底層實作原理和機制?
- 描述一個服務從發布到被消費的詳細程序?
- 分布式系統怎么做服務治理?
- 訊息中間件如何解決訊息丟失問題?
- Dubbo的服務請求失敗怎么處理?
- 對分布式事務的理解?
- 如何實作負載均衡,有哪些演算法可以實作?
- Zookeeper的用途,選舉的原理是什么?
- 講講資料的垂直拆分水平拆分?
- zookeeper原理和適用場景?
- zookeeper watch機制?
- redis/zk節點宕機如何處理?
- 分布式集群下如何做到唯一序列號?
- 用過哪些MQ,怎么用的,和其他mq比較有什么優缺點,MQ的連接是執行緒安全的嗎?
- MQ系統的資料如何保證不丟失?
- 列舉出能想到的資料庫分庫分表策略?
由于面試題題目及答案的內容太多,不能全部展示出來,
我這里已經全部整理成面試專題檔案還有一份大廠面試場景pdf,有想獲取到參考的朋友:點贊+關注后,私信回復【面試】即可(一定要記得關注我,不然沒辦法回復陌生人私信),希望大家都能夠拿到一個心怡的offer,

大廠面試場景檔案總結

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/135260.html
標籤:其他
上一篇:Java工程師成長之路【更新中】
下一篇:Java8 日期時間的操作技巧

