收藏了800道Java後端經典面試題,分享給大家,希望你找到自己理想的Offer呀~

Java 基礎

  1. equals與==的區別

  2. final, finally, finalize 的區別

  3. 重載和重寫的區別

  4. 兩個對象的hashCode()相同,則 equals()是否也一定爲 true?

  5. 抽象類和接口有什麼區別

  6. BIO、NIO、AIO 有什麼區別?

  7. String,Stringbuffer,StringBuilder的區別

  8. JAVA中的幾種基本數據類型是什麼,各自佔用多少字節呢

  9. Comparator與Comparable有什麼區別?

  10. String類能被繼承嗎,爲什麼。

  11. 說說Java中多態的實現原理

  12. Java泛型和類型擦除

  13. int和Integer 有什麼區別,還有Integer緩存的實現

  14. 說說反射的用途及實現原理,Java獲取反射的三種方法

  15. 面向對象的特徵

  16. &和&&的區別

  17. Java中IO流分爲幾種?

  18. 講講類的實例化順序,比如父類靜態數據,構造函數,子類靜態數據,構造函數。

  19. Java創建對象有幾種方式

  20. 如何將GB2312編碼的字符串轉換爲ISO-8859-1編碼的字符串呢?

  21. 守護線程是什麼?用什麼方法實現守護線程

  22. notify()和 notifyAll()有什麼區別?

  23. Java語言是如何處理異常的,關鍵字throws、throw、try、catch、finally怎麼使用?

  24. 談談Java的異常層次結構

  25. 靜態內部類與非靜態內部類有什麼區別區別

  26. String s與new String與有什麼區別

  27. 反射中,Class.forName和ClassLoader的區別

  28. JDK動態代理與cglib實現的區別

  29. error和exception的區別,CheckedException,RuntimeException的區別。

  30. 深拷貝和淺拷貝區別

  31. JDK 和 JRE 有什麼區別?

  32. String 類的常用方法都有那些呢?

  33. 談談自定義註解的場景及實現

  34. 說說你熟悉的設計模式有哪些?

  35. 抽象工廠和工廠方法模式的區別?

  36. 什麼是值傳遞和引用傳遞?

  37. 可以在static環境中訪問非static變量嗎?

  38. Java支持多繼承麼,爲什麼?

  39. 用最有效率的方法計算2乘以8?

  40. 構造器是否可被重寫?

  41. char型變量中能不能存貯一箇中文漢字,爲什麼?

  42. 如何實現對象克隆?

  43. object中定義了哪些方法?

  44. hashCode的作用是什麼?

  45. for-each與常規for循環的效率對比

  46. 寫出幾種單例模式實現,懶漢模式和餓漢模式區別

  47. 請列出 5 個運行時異常。

  48. 2個不相等的對象有可能具有相同的 hashcode嗎?

  49. 訪問修飾符public,private,protected,以及default的區別?

  50. 談談final在java中的作用?

  51. java中的Math.round(-1.5) 等於多少呢?

  52. String屬於基礎的數據類型嗎?

  53. 如何將字符串反轉呢?

  54. 描述動態代理的幾種實現方式,它們分別有什麼優缺點

  55. 在自己的代碼中,如果創建一個java.lang.String類,這個類是否可以被類加載器加載?爲什麼。

  56. 談談你對java.lang.Object對象中hashCode和equals方法的理解。在什麼場景下需要重新實現這兩個方法。

  57. 在jdk1.5中,引入了泛型,泛型的存在是用來解決什麼問題。

  58. 什麼是序列化,怎麼序列化,反序列呢?

  59. java8的新特性。

  60. 匿名內部類是什麼?如何訪問在其外面定義的變量呢?

  61. break和continue有什麼區別?

  62. String s = "Hello";s = s + " world!";這兩行代碼執行後,原始的 String 對象中的內容是否會改變?

  63. 怎樣將GB2312編碼的字符串轉換爲ISO-8859-1編碼的字符串?

  64. try-catch-finally-return執行順序

  65. Java 7新的 try-with-resources語句,平時有使用嗎

  66. 簡述一下面向對象的”六原則一法則”。

  67. switch是否能作用在byte 上,是否能作用在long 上,是否能作用在String上?

  68. 數組有沒有length()方法?String有沒有length()方法?

  69. 是否可以從一個靜態(static)方法內部發出對非靜態(non-static)方法的調用?

  70. String s = new String("jay");創建了幾個字符串對象?

  71. 匿名內部類是否可以繼承其它類?是否可以實現接口?

  72. 我們能將int強制轉換爲 byte類型的變量嗎?如果該值大於byte 類型的範圍,將會出現什麼現象?

  73. float f=3.4;正確嗎?

  74. 你能寫出一個正則表達式來判斷一個字符串是否是一個數字嗎?

  75. Reader和InputStream區別?

  76. 列舉出JAVA中6個比較常用的包

  77. JDK 7有哪些新特性

  78. 同步和異步有什麼區別?

  79. 實際開發中,Java一般使用什麼數據類型來代表價格?

  80. 64 位 JVM 中,int 的長度是多數?

  81. java8的新特性

  82. 字節流與字符流的區別

  83. Java 事件機制包括哪三個部分?分別介紹下。

  84. 爲什麼等待和通知是在 Object 類而不是 Thread 中聲明的?

  85. 每個對象都可上鎖,這是在 Object類而不是 Thread 類中聲明,爲什麼呢?

  86. 爲什麼char 數組比Java中的 String 更適合存儲密碼?

  87. 如何使用雙重檢查鎖定在 Java 中創建線程安全的單例?

  88. 如果你的Serializable類包含一個不可序列化的成員,會發生什麼?你是如何解決的?

  89. 什麼是serialVersionUID ?如果你不定義這個, 會發生什麼?

  90. Java 中,Maven 和 ant,gradle 有什麼區別?

  91. 常見的序列化協議有哪些

  92. @transactional註解在什麼情況下會失效,爲什麼。

  93. Java 中,DOM 和SAX 解析器有什麼不同?

  94. 數組在內存中如何分配;

  95. 什麼是 Busy spin?我們爲什麼要使用它?

  96. Java 中怎麼獲取一份線程 dump 文件?

  97. 父類的靜態方法能否被子類重寫

  98. 什麼是不可變對象

  99. 如何正確的退出多層嵌套循環?

  100. SimpleDateFormat是線程安全的嗎?你一般怎麼格式化

  101. 抽象類必須要有抽象方法嗎?

  102. 怎麼實現動態代理?有哪些應用

  103. 什麼是內部類?內部類的作用

  104. 泛型中extends和super的區別

  105. 內部類有幾種,在項目中的有哪些應用

  106. utf-8編碼中的中文佔幾個字節;int型幾個字節?

  107. 說說你對Java註解的理解

  108. Java 中 java.util.Date 與 java.sql.Date 有什麼區別?

  109. 說一下隱式類型轉換

  110. 抽象類能使用final修飾嗎

  111. 給我一個符合開閉原則的設計模式的例子

  112. Files的常用方法都有哪些

  113. Java 中,Serializable與Externalizable 的區別?

  114. Java鎖有哪些種類,它們都有哪些區別

  115. 抽象的方法是否可同時是靜態的),是否可同時是本地方法),是否可同時被 synchronized 修飾?

  116. 一個”.java”源文件中是否可以包含多個類(不是內部類)?有什麼限制?

  117. 說說代理的實現原理

  118. 瞭解哪設計模式,舉例說說在jdk源碼哪些用到了你說的設計模式

  119. 什麼是B/S架構?什麼是C/S架構

  120. Java有那些開發平臺呢?

  121. Java內部類爲什麼可以訪問到外部類呢?

  122. Java支持的數據類型有哪些?什麼是自動拆裝箱呢?

  123. 創建線程有幾種不同的方式

  124. hashCode()和equals()方法的重要性體現在什麼地方?

  125. 如何通過反射獲取和設置對象私有字段的值?

  126. 如何通過反射調用對象的方法?

  127. 簡述一下面向對象的"六原則一法則"

  128. Java 對象不使用時爲什麼要賦值爲 null?

  129. 什麼時候用斷言(assert)?

  130. AJAX請求爲什麼不安全?

  131. 一個Java字符串中到底能有多少個字符?

  132. StringBuilder爲什麼線程不安全?

  133. 深克隆和淺克隆

  134. 聊一聊設計模式的基本原則

  135. Java 能否自定義一個類叫 java.lang.System?

  136. Java中的兩種異常類型是什麼?他們有什麼區別?

  137. Java中Exception和Error有什麼區別?

  138. throw和throws有什麼區別?

  139. 異常處理完成以後,Exception對象會發生什麼變化?

  140. 什麼是RMI?

  141. 解釋下Serialization和Deserialization。

  142. 環境變量Path和ClassPath的作用是什麼?如何設置這兩個環境變量?

  143. 字符型常量和字符串常量的區別

  144. 構造器Constructor是否可被override

  145. 什麼是方法的返回值?返回值在類的方法裏的作用是什麼?

  146. 一個類的構造方法的作用是什麼?若一個類沒有聲明構造方法,改程序能正確執行嗎?爲什麼?

  147. 靜態方法和實例方法有何不同?

  148. 對象的相等與指向他們的引用相等,兩者有什麼不同?

  149. 用 Java 寫一個線程安全的單例模式

  150. 我能在不進行強制轉換的情況下將一個 double值賦值給 long類型的變量嗎?

  151. java 枚舉類型是否可以繼承 (final)?

  152. Cloneable 接口實現原理?

  153. 繼承和聚合的區別?

  154. 能用Java覆蓋靜態方法嗎?如果我在子類中創建相同的方法是編譯時錯誤?

  155. 什麼是Java程序的主類?應用程序和小程序的主類有何不同?

  156. instanceof 工作中使用過嗎?

  157. Java自帶線程池判斷線程池是否已經結束運行的方法叫什麼

  158. 成員變量與局部變量的區別有那些?

  159. 創建一個對象用什麼運算符? 對象實體與對象引用有何不同?

  160. 一行Java代碼是如何執行的?

Java 集合

  1. Arraylist與LinkedList區別

  2. Collections.sort和Arrays.sort的實現原理

  3. HashMap原理,java8做了什麼改變

  4. List 和 Set,Map 的區別

  5. poll()方法和 remove()方法的區別?

  6. HashMap,HashTable,ConcurrentHash的共同點和區別

  7. 寫一段代碼在遍歷 ArrayList 時移除一個元素

  8. Java中怎麼打印數組?

  9. TreeMap底層?

  10. HashMap 的擴容過程

  11. HashSet是如何保證不重複的

  12. HashMap 是線程安全的嗎,爲什麼不是線程安全的?死循環問題?

  13. LinkedHashMap的應用,底層,原理

  14. 哪些集合類是線程安全的?哪些不安全?

  15. ArrayList 和 Vector 的區別是什麼?

  16. Collection與Collections的區別是什麼?

  17. 如何決定使用 HashMap 還是TreeMap?

  18. 如何實現數組和 List之間的轉換?

  19. 迭代器 Iterator 是什麼?怎麼用,有什麼特點?

  20. Iterator 和 ListIterator 有什麼區別?

  21. 怎麼確保一個集合不能被修改?

  22. 快速失敗(fail-fast)和安全失敗(fail-safe)的區別是什麼?

  23. 什麼是Java優先級隊列(Priority Queue)?

  24. JAVA8的ConcurrentHashMap爲什麼放棄了分段鎖,有什麼問題嗎,如果你來設計,你如何設計。

  25. 阻塞隊列的實現,ArrayBlockingQueue的底層實現?

  26. Java 中的 LinkedList是單向鏈表還是雙向鏈表?

  27. 說一說ArrayList 的擴容機制吧

  28. HashMap 的長度爲什麼是2的冪次方,以及其他常量定義的含義~

  29. ConcurrenHashMap 原理?1.8 中爲什麼要用紅黑樹?

  30. ArrayList的默認大小

  31. 爲何Collection不從Cloneable和Serializable接口繼承?

  32. Enumeration和Iterator接口的區別?

  33. 我們如何對一組對象進行排序?

  34. 當一個集合被作爲參數傳遞給一個函數時,如何纔可以確保函數不能修改它?

  35. 說一下 HashSet 的實現原理?

  36. Array 和 ArrayList 有何區別?

  37. 在 Queue中poll()和 remove()有什麼區別?

  38. ArrayList 如何刪除重複的元素或者指定的元素;

  39. 講講紅黑樹的特點?

  40. Java集合類框架的最佳實踐有哪些?

  41. Enumeration接口和Iterator 接口的區別有哪些?

  42. HashSet和TreeSet有什麼區別?

  43. Set裏的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()?

  44. 說出ArrayList,LinkedList的存儲性能和特性

  45. Java中HashMap的key值要是爲類對象則該類需要滿足什麼條件?

  46. ArrayList集合加入1萬條數據,應該怎麼提高效率

  47. 如何對Object的list排序

  48. ArrayList 和 HashMap 的默認大小是多數?

  49. 有沒有有順序的Map實現類,如果有,他們是怎麼保證有序的

  50. HashMap是怎麼解決哈希衝突的

Java 併發 && 多線程

  1. synchronized 的實現原理以及鎖優化?

  2. ThreadLocal原理,使用注意點,應用場景有哪些?

  3. synchronized和ReentrantLock的區別?

  4. 說說CountDownLatch與CyclicBarrier 區別

  5. Fork/Join框架的理解

  6. 爲什麼我們調用start()方法時會執行run()方法,爲什麼我們不能直接調用run()方法?

  7. Java中的volatile關鍵是什麼作用?怎樣使用它?在Java中它跟synchronized方法有什麼不同?volatile 的實現原理

  8. CAS?CAS 有什麼缺陷,如何解決?

  9. 如何檢測死鎖?怎麼預防死鎖?死鎖四個必要條件

  10. 如果線程過多,會怎樣?

  11. 說說 Semaphore原理?

  12. AQS組件,實現原理

  13. 假設有T1、T2、T3三個線程,你怎樣保證T2在T1執行完後執行,T3在T2執行完後執行?

  14. LockSupport作用是?

  15. Condition接口及其實現原理

  16. 說說併發與並行的區別?

  17. 爲什麼要用線程池?Java的線程池內部機制,參數作用,幾種工作阻塞隊列,線程池類型以及使用場景

  18. 如何保證多線程下 i++ 結果正確?

  19. 10 個線程和2個線程的同步代碼,哪個更容易寫?

  20. 什麼是多線程環境下的僞共享(false sharing)?

  21. 線程池如何調優,最大數目如何確認?

  22. Java 內存模型?

  23. 怎麼實現所有線程在等待某個事件的發生纔會去執行?

  24. 說一下 Runnable和 Callable有什麼區別?

  25. 用Java編程一個會導致死鎖的程序,你將怎麼解決?

  26. 線程的生命週期,線程的幾種狀態。

  27. ReentrantLock實現原理

  28. java併發包concurrent及常用的類

  29. wait(),notify()和suspend(),resume()之間的區別

  30. FutureTask是什麼?

  31. 一個線程如果出現了運行時異常會怎麼樣

  32. 生產者消費者模型的作用是什麼

  33. ReadWriteLock是什麼

  34. Java中用到的線程調度算法是什麼?

  35. 線程池中的阻塞隊列如果滿了怎麼辦?

  36. 線程池中 submit()和 execute()方法有什麼區別?

  37. 介紹一下 AtomicInteger 類的原理?

  38. 多線程鎖的升級原理是什麼?

  39. 指令重排序,內存柵欄等?

  40. Java 內存模型 happens-before原則

  41. 公平鎖/非公平鎖

  42. 可重入鎖

  43. 獨享鎖、共享鎖

  44. 偏向鎖/輕量級鎖/重量級鎖

  45. 如何保證內存可見性

  46. 非核心線程延遲死亡,如何實現?

  47. ConcurrentHashMap讀操作爲什麼不需要加鎖?

  48. ThreadLocal 如何解決 Hash 衝突?

  49. ThreadLocal 的內存泄露是怎麼回事?

  50. 爲什麼ThreadLocalMap 的 key是弱引用,設計理念是?

  51. 同步方法和同步代碼塊的區別是什麼?

  52. 在Java中Lock接口比synchronized塊的優勢是什麼?如果你需要實現一個高效的緩存,它允許多個用戶讀,但只允許一個用戶寫,以此來保持它的完整性,你會怎樣去實現它?

  53. 用Java實現阻塞隊列。

  54. 用Java寫代碼來解決生產者——消費者問題。

  55. 什麼是競爭條件?你怎樣發現和解決競爭?

  56. 爲什麼我們調用start()方法時會執行run()方法,爲什麼我們不能直接調用run()方法?

  57. Java中你怎樣喚醒一個阻塞的線程?

  58. 什麼是不可變對象,它對寫併發應用有什麼幫助?

  59. 你在多線程環境中遇到的共同的問題是什麼?你是怎麼解決它的?

  60. Java 中能創建 volatile數組嗎

  61. volatile 能使得一個非原子操作變成原子操作嗎

  62. 你是如何調用 wait()方法的?使用 if 塊還是循環?爲什麼?

  63. 我們能創建一個包含可變對象的不可變對象嗎?

  64. 在多線程環境下,SimpleDateFormat是線程安全的嗎

  65. 爲什麼Java中 wait 方法需要在 synchronized 的方法中調用?

  66. BlockingQueue,CountDownLatch及Semeaphore的使用場景

  67. Java中interrupted 和 isInterruptedd方法的區別?

  68. 怎麼檢測一個線程是否持有對象監視器

  69. 什麼情況會導致線程阻塞

  70. 如何在兩個線程間共享數據

  71. Thread.sleep(1000)的作用是什麼?

  72. 使用多線程可能帶來什麼問題

  73. 說說線程的生命週期和狀態?

  74. 什麼是上下文切換

  75. Java Monitor 的工作機理

  76. 按線程池內部機制,當提交新任務時,有哪些異常要考慮。

  77. 線程池都有哪幾種工作隊列?

  78. 說說幾種常見的線程池及使用場景?

  79. 使用無界隊列的線程池會導致內存飆升嗎?

  80. 爲什麼阿里發佈的 Java開發手冊中強制線程池不允許使用 Executors 去創建?

  81. Future有缺陷嘛?

JVM 篇

  1. 什麼情況下會發生棧內存溢出。什麼時候發生堆溢出?你是怎麼排錯的?

  2. JVM怎麼判斷對象是可回收對象?有哪些方法。

  3. JVM的內存結構,新生代與老年代的比例,Eden和Survivor比例。

  4. 你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms和G1,包括原理,流程,優缺點。

  5. 簡單說說你瞭解的類加載器,可以打破雙親委派麼,怎麼打破。

  6. JVM內存爲什麼要分成新生代,老年代,持久代。新生代中爲什麼要分爲Eden和Survivor。

  7. JVM 出現 fullGC 很頻繁,怎麼去線上排查問題?

  8. JVM中一次完整的GC流程是怎樣的,對象如何晉升到老年代,說說你知道的幾種主要的JVM參數。

  9. 垃圾回收算法的實現原理。

  10. JVM內存模型的相關知識瞭解多少,比如重排序,內存屏障,happen-before,主內存,工作內存等。

  11. 說一下Java對象的創建過程

  12. 你們線上應用的JVM參數配置了哪些。

  13. G1和cms區別。

  14. 怎麼打出線程棧信息。

  15. 說一下類加載的執行過程

  16. JVM垃圾回收機制,何時觸發MinorGC等操作呢?

  17. ZGC 垃圾收集器,瞭解過嗎

  18. 對象的訪問定位有哪兩種方式?

  19. 說一下 jvm 調優的工具?

  20. 對象什麼時候會進入老年代?

  21. 內存泄漏和內存溢出區別?

  22. 什麼是tomcat類加載機制?

  23. 瞭解逃逸分析技術嗎

  24. 調用System.gc()會發生什麼?

  25. 談談Minor GC條件,full GC條件

  26. Stop The World 瞭解過嗎?

  27. 談談你認識多少種OOM?如何避免OOM?

  28. 瞭解過JVM調優沒,基本思路是什麼?如何確定它們的大小呢?

  29. 淘寶熱門商品信息在JVM哪個內存區域

  30. 字節碼的編譯過程

  31. Java需要開發人員回收內存垃圾嗎?

  32. Java中垃圾回收有什麼目的?什麼時候進行垃圾回收?

  33. System.gc()和Runtime.gc()會做什麼事情?

  34. 主內存與工作內存

  35. 內存間交互操作

  36. volatile 禁止內存重排序

  37. 內存模型三大特性

  38. 談談先行發生原則

  39. JVM 堆內存溢出後,其他線程是否可繼續工作?

  40. 說一下JVM 常用參數有哪些?

  41. VM 爲什麼使用元空間替換了永久代?

  42. Java堆的結構是什麼樣子的?什麼是堆中的永久代(Perm Gen space)?

  43. JVM的永久代中會發生垃圾回收麼?

  44. 什麼是字節碼?採用字節碼的最大好處是什麼?什麼Java是虛擬機?

  45. MinorGC 的過程

  46. CPU 佔用過高如何分析

  47. Serial與Parallel GC之間的不同之處?

  48. WeakHashMap 是怎麼工作的?

  49. 解釋 Java 堆空間及 GC?

  50. 你能保證 GC 執行嗎?

  51. JVM中哪個參數是用來控制線程的棧堆棧小的?

數據庫

  1. MySQL 索引使用有哪些事項呢?

  2. 說說分庫與分表的設計

  3. 日常工作中你是怎麼優化SQL的?

  4. MySQL 遇到過死鎖問題嗎,你是如何解決的?

  5. InnoDB與MyISAM的區別

  6. 數據庫索引的原理,爲什麼要用 B+樹,爲什麼不用二叉樹?

  7. 聚集索引與非聚集索引的區別

  8. limit 100000 加載很慢的話,你是怎麼解決的呢?

  9. 如何選擇合適的分佈式主鍵方案呢?

  10. 事務的隔離級別有哪些?MySQL的默認隔離級別是什麼?

  11. 什麼是幻讀,髒讀,不可重複讀呢?

  12. 在高併發情況下,如何做到安全的修改同一行數據?

  13. 數據庫的樂觀鎖和悲觀鎖。

  14. SQL優化的一般步驟是什麼,怎麼看執行計劃(explain),如何理解其中各個字段的含義。

  15. select for update有什麼含義,會鎖表還是鎖行還是其他。

  16. MySQL事務得四大特性以及實現原理

  17. 如果某個表有近千萬數據,CRUD比較慢,如何優化。

  18. 如何寫sql能夠有效的使用到複合索引。

  19. mysql中in 和exists的區別。

  20. 數據庫自增主鍵可能遇到什麼問題。

  21. MVCC熟悉嗎,它的底層原理?

  22. 數據庫中間件瞭解過嗎,sharding jdbc,mycat?

  23. MYSQL的主從延遲,你怎麼解決?

  24. 說一下大表的優化方案

  25. 什麼是數據庫連接池?爲什麼需要數據庫連接池呢?

  26. 一條SQL語句在MySQL中如何執行的?

  27. InnoDB引擎中的索引策略,瞭解過嗎?

  28. 數據庫存儲日期格式時,如何考慮時區轉換問題?

  29. 一條sql執行過長的時間,你如何優化,從哪些方面入手?

  30. MYSQL數據庫服務器性能分析的方法命令有哪些?

  31. Blob和text有什麼區別?

  32. mysql裏記錄貨幣用什麼字段類型比較好?

  33. Mysql中有哪幾種鎖,列舉一下?

  34. Hash索引和B+樹區別是什麼?你在設計索引是怎麼抉擇的?

  35. mysql 的內連接、左連接、右連接有什麼區別?

  36. MySQL 的基礎架構

  37. 什麼是內連接、外連接、交叉連接、笛卡爾積呢?

  38. 說一下數據庫的三大範式

  39. mysql有關權限的表有哪幾個呢?

  40. Mysql的binlog有幾種錄入格式?分別有什麼區別?

  41. InnoDB引擎的4大特性,瞭解過嗎

  42. 索引有哪些優缺點?

  43. 索引有哪幾種類型?

  44. 創建索引優有什麼原則呢?

  45. 創建索引的三種方式

  46. 百萬級別或以上的數據,你是如何刪除的?

  47. 什麼是最左前綴原則?什麼是最左匹配原則?

  48. B樹和B+樹的區別,數據庫爲什麼使用B+樹而不是B樹?

  49. 覆蓋索引、回表等這些,瞭解過嗎?

  50. B+樹在滿足聚簇索引和覆蓋索引的時候不需要回表查詢數據?

  51. 什麼是聚簇索引?何時使用聚簇索引與非聚簇索引

  52. 非聚簇索引一定會回表查詢嗎?

  53. 聯合索引是什麼?爲什麼需要注意聯合索引中的順序?

  54. 什麼是數據庫事務?

  55. 隔離級別與鎖的關係

  56. 按照鎖的粒度分,數據庫鎖有哪些呢?鎖機制與InnoDB鎖算法

  57. 從鎖的類別角度講,MySQL都有哪些鎖呢?

  58. MySQL中InnoDB引擎的行鎖是怎麼實現的?

  59. 什麼是死鎖?怎麼解決?

  60. 爲什麼要使用視圖?什麼是視圖?

  61. 視圖有哪些特點?哪些使用場景?

  62. 視圖的優點,缺點,講一下?

  63. count(1)、count(*) 與 count(列名) 的區別?

  64. 什麼是遊標?

  65. 什麼是存儲過程?有哪些優缺點?

  66. 什麼是觸發器?觸發器的使用場景有哪些?

  67. MySQL中都有哪些觸發器?

  68. 超鍵、候選鍵、主鍵、外鍵分別是什麼?

  69. SQL 約束有哪幾種呢?

  70. 談談六種關聯查詢,使用場景。

  71. varchar(50)中50的涵義

  72. mysql中int(20)和char(20)以及varchar(20)的區別

  73. drop、delete與truncate的區別

  74. UNION與UNION ALL的區別?

  75. SQL的生命週期?

  76. 超大分頁怎麼處理?

  77. 慢查詢日誌

  78. 關心過業務系統裏面的sql耗時嗎?統計過慢查詢嗎?對慢查詢都怎麼優化過?

  79. 主鍵使用自增ID還是UUID,爲什麼?

  80. mysql自增主鍵用完了怎麼辦?

  81. 字段爲什麼要求定義爲not null?

  82. 如果要存儲用戶的密碼散列,應該使用什麼字段進行存儲?

  83. 優化查詢過程中的數據訪問

  84. 如何優化長難的查詢語句?有實戰過嗎?

  85. 優化特定類型的查詢語句

  86. MySQL數據庫cpu飆升的話,要怎麼處理呢?

  87. 讀寫分離有哪些解決方案?

  88. MySQL的複製原理以及流程

  89. 備份計劃,mysqldump以及xtranbackup的實現原理?

  90. Innodb的事務實現原理?

  91. 談談 MySQL 的Explain

  92. Innodb的事務與日誌的實現方式

  93. MySQL binlog的幾種日誌錄入格式以及區別

  94. 500臺db,在最快時間之內重啓。

  95. 你是如何監控你們的數據庫的?你們的慢日誌都是怎麼查詢的?

  96. 你是否做過主從一致性校驗,如果有,怎麼做的,如果沒有,你打算怎麼做?

  97. 你們數據庫是否支持emoji表情存儲,如果不支持,如何操作?

  98. MySQL中InnoDB引擎的行鎖是通過加在什麼上完成(或稱實現)的?爲什麼是這樣子的?

  99. 一個6億的表a,一個3億的表b,通過外間tid關聯,你如何最快的查詢出滿足條件的第50000到第50200中的這200條數據記錄。

  100. 數據庫垂直和水平拆分

緩存/Redis

  1. Redis用過哪些數據類型,每種數據類型的使用場景

  2. Redis緩存穿透、緩存雪崩和緩存擊穿原因,以及解決方案

  3. 如何使用Redis來實現分佈式鎖,redis分佈式鎖有什麼缺陷?

  4. Redis 持久化機制,有幾種方式,優缺點是什麼,怎麼實現的,RDB和AOF的區別

  5. Redis集羣,高可用,原理。

  6. Redis的數據淘汰策略

  7. 爲什麼要用redis?爲什麼要用緩存,在哪些場景使用緩存

  8. redis事務,瞭解嗎,瞭解Redis事務的CAS操作嗎

  9. 如何解決 Redis 的併發競爭Key問題。

  10. Redis爲什麼是單線程的,爲什麼單線程還這麼快?

  11. 如何保證緩存與數據庫雙寫時的數據一致性?

  12. redis和memcached有什麼區別

  13. JVM本地緩存,瞭解過嗎

  14. redis的list結構相關的操作。

  15. redis2和redis3的區別,redis3內部通訊機制。

  16. Redis的選舉算法和流程是怎樣的?

  17. Reids的主從複製機制原理。

  18. Redis的線程模型是什麼?

  19. Redis的使用要注意什麼,講講持久化方式,內存設置,集羣的應用和優劣勢,淘汰策略等。

  20. Redis緩存分片

  21. redis的集羣怎麼同步的數據的?

  22. 請思考一個方案,設計一個可以控制緩存總體大小的自動適應的本地緩存。

  23. redis的哨兵模式,一個key值如何在redis集羣中找到存儲在哪裏。

  24. Redis,一個字符串類型的值能存儲最大容量是多少?

  25. MySQL裏有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據?

  26. Redis和Redisson有什麼關係?

  27. Redis中的管道有什麼用?

  28. Redis事務相關的命令有哪幾個?

  29. Redis key的過期時間和永久有效分別怎麼設置?

  30. Redis回收使用的是什麼算法?

  31. 一個Redis實例最多能存放多少的keys?List、Set、Sorted Set他們最多能存放多少元素?

  32. Redis—跳躍表,複雜度是多少?

  33. Redis有哪些優缺點?爲什麼要用 Redis ?

  34. 爲什麼要用Redis 而不用 map/guava 做緩存?

  35. 如何用 Redis 統計獨立用戶訪問量?

  36. 如何選擇合適的持久化方式

  37. Redis持久化數據和緩存怎麼做擴容?

  38. Redis key的過期時間和永久有效分別怎麼設置?

  39. 我們知道通過expire來設置key 的過期時間,那麼對過期的數據怎麼處理呢?

  40. Redis的過期鍵的刪除策略

  41. Redis的內存用完了會發生什麼?

  42. Redis如何做內存優化?

  43. Redis事務的三個階段

  44. Redis事務相關命令

  45. Redis事務保證原子性嗎,支持回滾嗎?

  46. Redis事務支持隔離性嗎?

  47. Redis集羣的主從複製模型是怎樣的?

  48. 生產環境中的 redis 是怎麼部署的?

  49. 說說Redis哈希槽的概念

  50. Redis集羣會有寫操作丟失嗎?爲什麼?

  51. Redis集羣最大節點個數是多少?

  52. Redis集羣如何選擇數據庫?

  53. Redis是單線程的,如何提高多核CPU的利用率?

  54. 爲什麼要做Redis分區?有什麼缺點?

  55. 你知道有哪些Redis分區實現方案?

  56. 緩存的實現原理,設計緩存要注意什麼

  57. 如何解決 Redis 的併發競爭 Key 問題

  58. 分佈式Redis是前期做還是後期規模上來了再做好?爲什麼?

  59. 什麼是 RedLock?

  60. Redis支持的Java客戶端都有哪些?官方推薦用哪個?

  61. 爲什麼Redis的操作是原子性的,怎麼保證原子性

  62. Redis常見性能問題和解決方案?

  63. 一個字符串類型的值能存儲最大容量是多少?

  64. Redis如何做大量數據插入?

  65. 假如Redis裏面有1億個key,其中有10w個key是以某個固定的已知的前綴開頭的,如果將它們全部找出來?

  66. 使用Redis做過異步隊列嗎,是如何實現的?

  67. Redis如何實現延時隊列?

  68. Redis回收進程如何工作的?

  69. 熱點數據和冷數據是什麼

  70. 使用過Redis哪些命令?

計算機網絡

  1. 請詳細介紹一下TCP 的三次握手機制,爲什麼要三次握手?

  2. 講一下HTTP與HTTPS 的區別。

  3. Session和cookie的區別。

  4. TCP的四次揮手,爲什麼要有TIME_WAIT 狀態,爲什麼需要四次握手

  5. http1.0和http1.1有什麼區別。

  6. HTTP的常見狀態碼有哪些,代表什麼含義?比如200, 302, 404?

  7. 當你用瀏覽器打開一個鏈接到返回結果,發生了什麼。

  8. TCP/IP如何保證可靠性,說說TCP頭的結構。

  9. GET與POST方式的區別

  10. 如何避免瀏覽器緩存。

  11. TCP/IP模型?

  12. 講一講 TCP 和 UDP 各有什麼特點,兩者有什麼區別

  13. 詳細講一下TCP的滑動窗口

  14. 說一下擁塞控制

  15. 如何理解HTTP協議的無狀態性。

  16. HTTP有哪些 method?

  17. HTTP長連接和短連接

  18. HTTPS原理,加簽,驗籤,什麼是數字簽名?什麼是數字證書?對稱加密和非對稱加密等。

  19. 談下你對 IP 地址分類的理解?

  20. ARP及RARP協議的工作原理?

  21. 怎麼解決拆包和粘包?

  22. DNS 的解析過程?

  23. 什麼是DoS、DDoS、DRDoS攻擊?如何防禦?

  24. WebSocket與socket的區別

  25. 講一講SYN超時,洪泛攻擊,以及解決策略

  26. ICMP協議的功能

  27. 什麼是 session,有哪些實現 session 的機制?

  28. Http請求的過程與原理

  29. 你知道網絡協議有那些?

  30. HTTPS 爲什麼是安全的?說一下他的底層實現原理?

  31. ping的原理

  32. 如果服務器出現了大量 CLOSE_WAIT 狀態如何解決。

  33. TCP 黏包是怎麼產生的?

  34. OSI七層體系結構路

  35. 由器與交換機的區別

  36. 什麼是XSS攻擊,如何避免

  37. 什麼是CSRF攻擊,如何避免

  38. Https雙向和單向驗證的區別

  39. 如果客戶端禁止Cookie能實現Session

  40. HTTP請求中session實現原理

消息隊列

  1. 消息隊列有哪些使用場景。

  2. 消息中間件如何解決消息丟失問題?

  3. 談談消息的重發,補充策略。

  4. 如何保證消息的順序性。

  5. 怎麼利用mq實現最終一致性?

  6. kafka 和其他消息隊列的區別,kafka 主從同步怎麼實現?

  7. MQ的連接是線程安全的嗎,你們公司的MQ服務架構怎樣的。

  8. kafka吞吐量高的原因。

  9. rabbitmq如何實現集羣高可用?

  10. 使用kafka有沒有遇到什麼問題,怎麼解決的?

  11. MQ有可能發生重複消費,如何避免,如何做到冪等?

  12. MQ的消息延遲了怎麼處理,消息可以設置過期時間麼,過期了你們一般怎麼處理?

  13. rabbitmq 有幾種廣播類型?

  14. 使用 kafka 集羣需要注意什麼?

  15. 爲什麼使用消息隊列?有什麼用?

  16. 消息隊列有什麼優點和缺點?

  17. Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什麼區別,以及適合哪些場景?

  18. MQ能否保證消息必達,即消息的可靠性

  19. 大量消息在MQ里長時間積壓,該如何解決?

  20. MQ消息過期失效怎麼辦?

  21. kafka可以脫離zookeeper單獨使用嗎?爲什麼?

  22. kafka 的分區策略有哪些?

  23. kafka 有幾種數據保留策略?

  24. RabbitMQ 中的 broker 是指什麼?cluster 又是指什麼?

  25. Kafka 消息是採用 Pull 模式,還是 Push 模式?

  26. RabbitMQ 有哪些重要組件

  27. 如何確保消息接收方消費了消息?

  28. 消息基於什麼傳輸?

  29. 消息怎麼路由?

  30. 消息如何分發?

mybatis

  1. mybatis 中 #{}和 ${}的區別是什麼?

  2. 什麼是SQL注入 ,如何避免。

  3. 說一下 mybatis 的一級緩存和二級緩存

  4. mybatis 是否支持延遲加載?延遲加載的原理是什麼?

  5. mybatis 動態sql中使用標籤與直接寫where關鍵字有什麼區別?

  6. mybatis 動態sql標籤中循環標籤中有哪些屬性,各自的作用。

  7. mybatis 和 hibernate 的區別有哪些?

  8. RowBounds是一次性查詢全部結果嗎?爲什麼?

  9. MyBatis 定義的接口,怎麼找到實現的?

  10. Mybatis的底層實現原理。

  11. Mybatis是如何進行分頁的?分頁插件的原理是什麼?

  12. Mybatis執行批量插入,能返回數據庫主鍵列表嗎?

  13. Mybatis都有哪些Executor執行器?它們之間的區別是什麼?

  14. Mybatis動態sql有什麼用?執行原理?有哪些動態sql?

  15. mybatis有幾種分頁方式?

  16. MyBatis框架的優點和缺點

  17. 使用MyBatis框架,當實體類中的屬性名和表中的字段名不一樣 ,怎麼辦 ?

  18. 通常一個Xml映射文件,都會寫一個Dao接口與之對應,請問,這個Dao接口的工作原理是什麼?Dao接口裏的方法,參數不同時,方法能重載嗎?

  19. Xml映射文件中,除了常見的select|insert|updae|delete標籤之外,還有哪些標籤?

  20. 簡述Mybatis的插件運行原理,以及如何編寫一個插件。

操作系統

  1. Linux系統下你關注過哪些內核參數,說說你知道的。

  2. epoll和poll有什麼區別。

  3. 線上CPU爆高,請問你如何找到問題所在。

  4. Linux下IO模型有幾種,各自的含義是什麼。

  5. top 命令之後有哪些內容,有什麼作用。

  6. 進程通信有幾種方式?

  7. 說說進程的調度算法

  8. 常見的幾種內存管理機制

  9. 什麼是虛擬內存(Virtual Memory)?

  10. 內存置換算法

  11. 虛擬地址、邏輯地址、線性地址、物理地址的區別。

  12. 操作系統的頁式存儲

  13. 進程和線程的區別

  14. socket客戶端和服務端通信過程

  15. 影響調度程序的指標是什麼?

  16. 進程間狀態有哪些?

  17. 一個線程在內存中如何存儲?

  18. 殭屍進程是什麼,如果產生一個殭屍進程,如何查找殭屍進程

  19. 一個進程有20個線程,在某個線程中調用fork,新的進程會有20個線程嗎?

  20. 什麼是 RR 調度算法?

  21. 什麼是 DMA(直接內存訪問)?

Spring 相關

  1. BeanFactory和 ApplicationContext有什麼區別?

  2. Spring IOC 的理解,其初始化過程

  3. Spring Bean 的生命週期

  4. Spring MVC 的工作原理?

  5. Spring 循環注入的原理?

  6. Spring 中用到了那些設計模式?

  7. Spring AOP的理解,各個術語,他們是怎麼相互工作的?

  8. Spring框架中的單例bean是線程安全的嗎?

  9. Spring @ Resource和Autowired有什麼區別?

  10. Spring 的不同事務傳播行爲有哪些,有什麼作用?

  11. Spring Bean 的加載過程是怎樣的?

  12. 請舉例說明@Qualifier註解

  13. Spring 是如何管理事務的,事務管理機制?

  14. 使用Spring框架的好處是什麼?

  15. Spring由哪些模塊組成?

  16. ApplicationContext通常的實現是什麼?

  17. 什麼是Spring的依賴注入?

  18. 你怎樣定義類的作用域?

  19. Spring框架中的單例bean是線程安全的嗎?

  20. 你可以在Spring中注入一個null 和一個空字符串嗎?

  21. 你能說下 Spring Boot 與 Spring 的區別嗎

  22. SpringBoot 的自動配置是怎麼做的?

  23. @RequestMapping 的作用是什麼?

  24. spring boot 有哪些方式可以實現熱部署?

  25. 說說Ioc容器的加載過程

  26. 爲什麼 Spring 中的 bean 默認爲單例?

  27. 說說Spring中的@Configuration

  28. FileSystemResource 和ClassPathResource 有何區別?

  29. 什麼是 Swagger?你用 Spring Boot 實現了它嗎?

  30. spring的controller是單例還是多例,怎麼保證併發的安全。

  31. 說一下Spring的核心模塊

  32. 如何向 Spring Bean 中注入一個 Java.util.Properties

  33. 如何給Spring 容器提供配置元數據?

  34. 如何在Spring中如何注入一個java集合,實現過嗎?

  35. 什麼是基於Java的Spring註解配置? 舉幾個例子?

  36. 怎樣開啓註解裝配?

  37. Spring支持哪些事務管理類型

  38. 在Spring AOP 中,關注點和橫切關注的區別是什麼?

  39. spring 中有多少種IOC 容器?

  40. 描述一下 DispatcherServlet 的工作流程

  41. 介紹一下 WebApplicationContext吧

  42. Spring Boot 的配置文件有哪幾種格式?它們有什麼區別?

  43. Spring Boot 需要獨立的容器運行嗎?

  44. Spring Boot 自動配置原理是什麼?

  45. RequestMapping 和 GetMapping 的不同之處在哪裏?

  46. 如何使用Spring Boot實現異常處理?

  47. Spring Boot 中如何解決跨域問題 ?

  48. Spring Boot 如何實現熱部署 ?

  49. Spring Boot打成的 jar 和普通的jar有什麼區別呢?

  50. bootstrap.properties 和 application.properties 有何區別 ?

  51. springboot啓動機制

Netty/tomcat

  1. BIO、NIO和AIO區別

  2. 說一下Netty 的各大組件

  3. Netty 線程模型和 Reactor 模式

  4. 什麼是 Netty 的零拷貝?

  5. NIO 的底層實現。

  6. netty的心跳處理在弱網下怎麼辦

  7. Netty 高性能表現在哪些方面?

  8. Netty 和 Tomcat 有什麼區別?

  9. Netty 發送消息有幾種方式?

  10. 默認情況 Netty 起多少線程?何時啓動?

  11. Netty 支持哪些心跳類型設置?

  12. Java 中怎麼創建 ByteBuffer

  13. Java 中的內存映射緩存區是什麼?

  14. 簡單講講tomcat結構,以及其類加載器流程,線程模型等

  15. tomcat如何調優,涉及哪些參數

  16. IO多路複用機制

  17. Netty 的應用場景有哪些?

  18. 有幾種I/O 網絡模型?

  19. 說說Netty的執行流程?

  20. select、poll、epoll的機制及其區別?

常用Linux 命令

  1. 修改目錄,文件權限的命令

  2. 如何獲取一個本地服務器上可用的端口。

  3. 說說常見的linux命令,linux查看內存的命令是什麼?

  4. 查看系統磁盤空間剩餘情況的命令

  5. 如何獲取java進程的pid

  6. 如何獲取某個進程的網絡端口號;

  7. 如何實時打印日誌

  8. 如何統計某個字符串行數;

  9. 用一行命令查看文件的最後五行。

  10. 用一行命令輸出正在運行的java進程。

  11. 絕對路徑,當前目錄、上層目錄,切換目錄分別用什麼命令?

  12. 怎麼清屏?怎麼退出當前命令?

  13. 目錄創建,創建文件,複製文件分別用什麼命令?

  14. 查看文件內容有哪些命令可以使用?tail?cat?less?more?

  15. 怎麼使一個命令在後臺運行?

  16. 終止進程用什麼命令? 帶什麼參數? kill-9 pid有什麼風險?

  17. 搜索文件用什麼命令? 格式是怎麼樣的?

  18. 使用什麼命令查看網絡是否連通?

  19. 使用什麼命令查看 ip 地址及接口信息?

  20. awk 詳解

ZooKeeper

  1. Zookeeper的用途,選舉的原理是什麼。

  2. Zookeeper watch機制原理。

  3. zookeeper 怎麼保證主從節點的狀態同步?

  4. 集羣中有3臺服務器,其中一個節點宕機,這個時候 zookeeper 還可以使用嗎?

  5. zookeeper都有哪些功能?

  6. 什麼是paxos算法,什麼是zab協議。

  7. zookeeper 是如何保證事務的順序一致性的?

  8. zookeeper 負載均衡和 nginx 負載均衡區別

  9. Zookeeper 的典型應用場景

  10. 說說四種類型的數據節點Znode

  11. Zookeeper 的服務器角色(Leader,Follower,Observer)

  12. Zookeeper 有哪幾種幾種部署模式?

Elasticsearch

  1. 詳細描述一下Elasticsearch索引文檔的過程。

  2. 詳細描述一下Elasticsearch搜索的過程。

  3. Elasticsearch 的倒排索引是什麼。

  4. Elasticsearch是如何實現master選舉的。

  5. lucence內部結構是什麼。

  6. Lucene全文搜索的原理

  7. 在併發情況下,Elasticsearch 如何保證讀寫一致呢?

  8. 詳細闡述一下 Elasticsearch 搜索的過程。

  9. Elasticsearch 索引數據多了怎麼辦呢,如何調優,部署

  10. Elasticsearch 對於大數據量(上億量級)的聚合如何實現?

dubbo框架

  1. Dubbo的服務請求失敗怎麼處理

  2. dubbo的負載均衡有幾種算法?(隨機,輪詢,最少活躍請求數,一致性hash)

  3. Dubbo 和 Spring Cloud 有什麼區別?

  4. dubbo都支持什麼協議,推薦用哪種?

  5. 畫一畫服務註冊與發現的流程圖

  6. Dubbo默認使用什麼註冊中心,還有別的選擇嗎?

  7. 在 Provider 上可以配置的 Consumer 端的屬性有哪些?

  8. Dubbo啓動時如果依賴的服務不可用會怎樣?

  9. Dubbo推薦使用什麼序列化框架,你知道的還有哪些?

  10. Dubbo默認使用的是什麼通信框架,還有別的選擇嗎?

  11. 服務上線怎麼兼容舊版本?

  12. Dubbo服務之間的調用是阻塞的嗎?

  13. Dubbo telnet 命令能做什麼?

  14. Dubbo如何一條鏈接併發多個調用。

  15. Dubbo 的使用場景有哪些?

  16. Dubbo 核心功能有哪些?

  17. Dubbo 核心組件有哪些?

  18. Dubbo 服務器註冊於發現的流程?

  19. Dubbo 支持哪些協議,它們的優缺點有哪些?

  20. Dubbo 的註冊中心集羣掛掉,發佈者和訂閱者之間還能通信麼?

  21. Dubbo源碼使用了哪些設計模式

  22. Dubbo集羣提供了哪些負載均衡策略?

  23. Dubbo的集羣容錯方案有哪些?

  24. Dubbo 支持哪些序列化方式?

  25. Dubbo超時重試,Dubbo超時時間設置

spring cloud

  1. Eureka和Zookeeper區別

  2. 什麼是服務熔斷?什麼是服務降級?

  3. 什麼是Ribbon?

  4. 什麼是 Netflix Feign?它的優點是什麼?

  5. Ribbon和Feign的區別?

  6. 什麼是Spring Cloud Bus?

  7. Spring Cloud Gateway?

  8. 什麼是SpringCloudConfig?

  9. 什麼是 Hystrix?它如何實現容錯?

  10. 什麼是微服務?微服務優缺點

  11. Sentinel,微服務哨兵,瞭解過嗎

nginx

  1. Nginx的模塊與工作原理是什麼?

  2. Nginx 是什麼?有什麼作用?

  3. 說說Nginx的一些特性。

  4. 請說一下Nginx如何處理HTTP請求。

  5. 你知道,Nginx服務器上的Master和Worker進程分別是什麼嗎?

  6. nginx常用命令,啓動,重啓,檢查配置文件等

  7. Nginx 和 Apache 比較,各有什麼優缺點?

  8. Nginx 多進程模型是如何實現高併發的?

  9. 說說Nginx的反向代理和負載均衡

  10. 請列舉Nginx服務器的最佳用途。

算法

  1. 談一談一致性哈希算法。

  2. 快排怎麼實現

  3. 手寫二分查找

  4. 如何判斷一個單鏈表是否有環

  5. 平衡二叉樹的時間複雜度;

  6. 反轉單鏈表

  7. 合併多個單有序鏈表

  8. LRU 淘汰算法,用java自己實現一個LRU。

  9. 跳錶和平衡樹區別

  10. 你瞭解大O符號(big-O notation)麼?你能給出不同數據結構的例子麼?

  11. 如何手擼一個隊列?

  12. 10億個數字裏裏面找最小的10個。

  13. 平衡二叉樹的時間複雜度;

  14. 有1億個數字,其中有2個是重複的,快速找到它,時間和空間要最優。

  15. 八大基本排序的時間,空間複雜度

  16. 堆排序的原理

  17. 樹的幾種遍歷方式

  18. 遞歸算法

  19. 一個亂序數組,求第K大的數。排序方式使用字典序。

  20. 一棵二叉樹,求最大通路長度。

  21. 萬億級別的兩個URL文件A和B,如何求出A和B的差集C,(Bit映射->hash分組->多文件讀寫效率->磁盤尋址以及應用層面對尋址的優化)

  22. 最快的排序算法是哪個?給阿里2萬多名員工按年齡排序應該選擇哪個算法?堆和樹的區別;寫出快排代碼;鏈表逆序代碼

  23. LeetCode的經典算法題目,都要刷一遍以上哈~

分佈式

  1. 說說分佈式事務?分佈式事務的解決方案

  2. 什麼是分佈式系統?

  3. 講講CAP理念。

  4. 怎麼理解強一致性、單調一致性和最終一致性?

  5. 如何實現分佈式鎖?

  6. 如何實現分佈式 Session?

  7. 負載均衡的理解?

  8. 分佈式集羣下如何做到唯一序列號?

  9. 分佈式事務

  10. 什麼是一致性hash。

系統設計/方案設計

  1. 談談如何設計秒殺系統。

  2. 一千萬的用戶實時排名如何實現;

  3. 五萬人併發搶票怎麼實現

  4. 手機掃二維碼登錄是怎麼實現的?

  5. Google是如何在一秒內把搜索結果返回給用戶的。

  6. 12306網站的訂票系統如何實現,如何保證不會票不被超賣。

  7. 如果有幾十億的白名單,每天白天需要高併發查詢,晚上需要更新一次,如何設計這個功能。

  8. 接口的冪等性如何設計

  9. 如何設計存儲海量數據的存儲系統

  10. 分佈式session如何管理,你有哪些方案

  11. 講一下如何給高併發系統做限流?

  12. 使用SpringBoot如何開發郵件發送系統?

  13. 你如何設計一個能抗住大流量的系統,說說設計方案

  14. 如何設計一個高併發的系統?

  15. 數據量大的情況下分頁查詢很慢,有什麼優化方案?

  16. 設計一個秒殺系統,30分鐘沒付款就自動關閉交易。

  17. 如何使用redis和zookeeper實現分佈式鎖?有什麼區別優缺點,會有什麼問題,分別適用什麼

  18. 如何設計一個安全的API接口。

  19. 線上系統突然變得異常緩慢,你如何查找問題。

  20. 設計一個社交網站中的“私信”功能,要求高併發、可擴展等等。畫一下架構圖。

  21. 後臺系統怎麼防止請求重複提交

  22. 講講你理解的服務治理。

  23. 執行某操作,前50次成功,第51次失敗a全部回滾b前50次提交第51次拋異常,ab場景分別如何設置

  24. 一個大的含有50M個URL的記錄,一個小的含有500個URL的記錄,找出兩個記錄裏相同的URL

  25. 海量日誌數據,提取出某日訪問百度次數最多的那個IP

  26. 1000個線程同時運行,怎麼防止不卡

  27. 設計一個分佈式自增id生成服務

推薦閱讀

面試題:InnoDB 中一棵 B+ 樹能存多少行數據?【面試不翻車,翻車就跑路】

我畫了35張圖就是爲了讓你深入 AQS

Map 集合怎麼也有這麼多坑?一不小心又踩了好幾個!

數據庫裏賬號的密碼,怎樣存放更加安全?

講講 Redis 緩存更新一致性

面試:SpringBoot中的條件註解底層是如何實現的?

絕了!Dataway讓SpringBoot不在需要Controller、Service、DAO、Mapper了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章