「阿里」Java崗168道面試題:jvm+readis+mysql+spring+並行程式設計

2020-10-27 12:00:51

前言

「阿里」Java崗168道面試題:jvm+readis+mysql+spring+併發程式設計

 

再過兩個月就是過年了,拿完年終獎又要金三銀四了,然而面對大環境而言,跳槽成功的難度比往年高了很多,很明顯的感受就是:對於明年的java開發朋友跳槽面試,無論一面還是二面,都開始考驗一個Java程式設計師的技術功底和基礎。對原始碼解讀和核心原理理解也是成了加分項,特別是對 Java 的一些核心基礎知識點掌握的不夠或者沒有體系方向的朋友面試也成了一個苦惱的事情。

今天在這分享目前國內公司Java面試常問的問題包括JVM、常用的演演算法和資料結構,redis快取,分散式,Spring,微服務等。正所謂知己知彼,只有體系知識鞏固,面對不斷更新的技術才能快速掌握,同時在面試、工作中也更能脫穎而出!

由於篇幅原因,在這答案就不做全部展示了,這些題我已經整理成pdf檔案免費分享給那些有需要的朋友,同時整理也花費了蠻多時間

 

一,效能優化專題:

1.tomcat優化相關:

  1. 你怎樣給tomcat去調優?
  2. 如何加大tomcat連線數
  3. tomcat中如何禁止列目錄下的檔案
  4. 怎樣加大tomcat的記憶體。
  5. Tomcat有幾種部署方式?
  6. Tomcat的優化經驗。

2.jvm效能優化相關:

  1. Java類載入過程?
  2. 描述一下JVM載入Class檔案的原理機制?
  3. Java記憶體分配。
  4. GC是什麼?為什麼要有GC?
  5. 簡述Java垃圾回收機制。
  6. 如何判斷一個物件是否存活?(或者GC物件的判定方法)
  7. 垃圾回收的優點和原理。並考慮2種回收機制。
  8. 垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收記憶體嗎?有什麼辦法主動通知虛擬機器器進行垃圾回收?
  9. Java中會存在記憶體漏失嗎,請簡單描述。
  10. 深拷貝和淺拷貝。
  11. System.gc()和Runtime.gc()會做什麼事情?
  12. finalize()方法什麼時候被呼叫?解構函式(finalization)的目的是什麼?
  13. 如果物件的參照被置為null,垃圾收集器是否會立即釋放物件佔用的記憶體?
  14. 什麼是分散式垃圾回收(DGC)?它是如何工作的?
  15. 序列(serial)收集器和吞吐量(throughput)收集器的區別是什麼?
  16. 在Java中,物件什麼時候可以被垃圾回收?
  17. 簡述Java記憶體分配與回收策率以及Minor GC和MajorGC。
  18. JVM的永久代中會發生垃圾回收麼?
  19. Java中垃圾收集的方法有哪些?
  20. 什麼是類載入器,類載入器有哪些?
  21. 類載入器雙親委派模型機制?

答案解析:

答案解析

微服務架構專題:

1.springcloud面試專題:

  1. 什麼是SpringCloud?
  2. 使用SpringCloud有什麼優勢?
  3. 服務註冊和發現是什麼意思?SpringCloud如何實現?
  4. 負載平衡的意義什麼?
  5. 什麼是Hystrix?它如何實現容錯?
  6. 什麼是Hystrix斷路器?我們需要它嗎?
  7. 什麼是NetflixFeign?它的優點是什麼?
  8. 什麼是SpringCloudBus?我們需要它嗎?

2.SpringBoot面試專題:

  1. 什麼是SpringBoot?
  2. SpringBoot有哪些優點?
  3. 什麼是JavaConfig?
  4. 如何重新載入SpringBoot上的更改,而無需重新啟動伺服器?
  5. SpringBoot中的監視器是什麼?
  6. 如何在SpringBoot中禁用Actuator端點安全性?
  7. 如何在自定義埠上執行SpringBoot應用程式?
  8. 什麼是YAML?
  9. 如何實現SpringBoot應用程式的安全性?
  10. 如何整合SpringBoot和ActiveMQ?
  11. 如何使用SpringBoot實現分頁和排序?
  12. 什麼是Swagger?你用SpringBoot實現了它嗎?
  13. 什麼是SpringProfiles?
  14. 什麼是SpringBatch?
  15. 什麼是FreeMarker模板?
  16. 如何使用SpringBoot實現例外處理?
  17. 您使用了哪些startermaven依賴項?
  18. 什麼是CSRF攻擊?
  19. 什麼是WebSockets?
  20. 什麼是AOP?
  21. 什麼是ApacheKafka?
  22. 我們如何監視所有SpringBoot微服務?

3.Dubbo面試專題:

  1. Dubbo中zookeeper做註冊中心,如果註冊中心叢集都掛掉,釋出者和訂閱者之間還能通訊麼?
  2. dubbo服務負載均衡策略?
  3. Dubbo在安全機制方面是如何解決的
  4. dubbo連線註冊中心和直連的區別

答案解析:(由於文章長度較長,所有的解析沒有全部展示出來,有需要的朋友可以關注小編+私信【面試真題】獲取所有解析)

答案解析

三,Redis專題:

  1. 什麼是Redis?簡述它的優缺點?
  2. Redis與memcached相比有哪些優勢?
  3. Redis支援哪幾種資料型別?
  4. Redis主要消耗什麼物理資源?
  5. Redis有哪幾種資料淘汰策略?
  6. Redis官方為什麼不提供Windows版本?
  7. 一個字串型別的值能儲存最大容量是多少?
  8. 為什麼Redis需要把所有資料放到記憶體中?
  9. Redis叢集方案應該怎麼做?都有哪些方案?
  10. Redis叢集方案什麼情況下會導致整個叢集不可用?
  11. MySQL裡有2000w資料,redis中只存20w的資料,如何保證redis中的資料都是熱點資料?
  12. Redis有哪些適合的場景?
  13. Redis支援的Java使用者端都有哪些?官方推薦用哪個?
  14. Redis和Redisson有什麼關係?
  15. Jedis與Redisson對比有什麼優缺點?
  16. 說說Redis雜湊槽的概念?
  17. Redis叢集的主從複製模型是怎樣的?
  18. Redis叢集會有寫操作丟失嗎?為什麼?
  19. Redis叢集之間是如何複製的?
  20. Redis叢集最大節點個數是多少?
  21. Redis叢集如何選擇資料庫?
  22. Redis中的管道有什麼用?
  23. 怎麼理解Redis事務?
  24. Redis事務相關的命令有哪幾個?
  25. Rediskey的過期時間和永久有效分別怎麼設定?
  26. Redis如何做記憶體優化?
  27. Redis回收程序如何工作的?
  28. 使用過Redis分散式鎖麼,它是怎麼實現的?
  29. 使用過Redis做非同步佇列麼,你是怎麼用的?有什麼缺點?
  30. 什麼是快取穿透?如何避免?什麼是快取雪崩?何如避免?

答案解析:

答案解析

四,mysql專題:

  1. 一張表,裡面有ID自增主鍵,當insert了17條記錄之後,刪除了第15,16,17條記錄,再把Mysql重新啟動,再insert一條記錄,這條記錄的ID是18還是15?
  2. Mysql的技術特點是什麼?
  3. Heap表是什麼?
  4. Mysql伺服器預設埠是什麼?
  5. 與Oracle相比,Mysql有什麼優勢?
  6. 如何區分FLOAT和DOUBLE?
  7. 區分CHAR_LENGTH和LENGTH?
  8. 請簡潔描述Mysql中InnoDB支援的四種事務隔離級別名稱,以及逐級之間的區別?
  9. 在Mysql中ENUM的用法是什麼?
  10. 如何定義REGEXP?
  11. CHAR和VARCHAR的區別?
  12. 列的字串型別可以是什麼?
  13. 如何獲取當前的Mysql版本?
  14. Mysql中使用什麼儲存引擎?
  15. Mysql驅動程式是什麼?
  16. TIMESTAMP在UPDATECURRENT_TIMESTAMP資料型別上做什麼?
  17. 主鍵和候選鍵有什麼區別?
  18. 如何使用Unixshell登入Mysql?
  19. myisamchk是用來做什麼的?
  20. MYSQL資料庫伺服器效能分析的方法命令有哪些?
  21. 如何控制HEAP表的最大尺寸?
  22. MyISAMStatic和MyISAMDynamic有什麼區別?
  23. federated表是什麼?
  24. 如果一個表有一列定義為TIMESTAMP,將發生什麼?
  25. 列設定為AUTOINCREMENT時,如果在表中達到最大值,會發生什麼情況?
  26. 怎樣才能找出最後一次插入時分配了哪個自動增量?
  27. 你怎麼看到為表格定義的所有索引?
  28. LIKE宣告中的%和_是什麼意思?
  29. 如何在Unix和Mysql時間戳之間進行轉換?
  30. 列對比運運算元是什麼?
  31. 我們如何得到受查詢影響的行數?
  32. Mysql查詢是否區分大小寫?
  33. LIKE和REGEXP操作有什麼區別?
  34. BLOB和TEXT有什麼區別?
  35. mysql_fetch_array和mysql_fetch_object的區別是什麼?
  36. 我們如何在mysql中執行批次處理模式?
  37. MyISAM表格將在哪裡儲存,並且還提供其儲存格式?
  38. Mysql中有哪些不同的表格?
  39. ISAM是什麼?
  40. InnoDB是什麼?
  41. Mysql如何優化DISTINCT?
  42. 如何輸入字元為十六進位制數位?
  43. 如何顯示前50行?
  44. 可以使用多少列建立索引?
  45. NOW()和CURRENT_DATE()有什麼區別?
  46. 什麼樣的物件可以使用CREATE語句建立?
  47. Mysql表中允許有多少個TRIGGERS?
  48. 什麼是非標準字串型別?
  49. 什麼是通用SQL函數?
  50. 解釋存取控制列表
  51. MYSQL支援事務嗎?
  52. mysql裡記錄貨幣用什麼欄位型別好
  53. MYSQL資料表在什麼情況下容易損壞?
  54. mysql有關許可權的表都有哪幾個?
  55. Mysql中有哪幾種鎖?
    答案解析:

答案解析

五,並行程式設計專題:

  1. Synchronized 用過嗎,其原理是什麼?
  2. 你剛才提到獲取物件的鎖,這個「鎖」到底是什麼?如何確定物件的鎖?
  3. 什麼是可重入性,為什麼說 Synchronized 是可重入鎖?
  4. JVM 對 Java 的原生鎖做了哪些優化?48
  5. 為什麼說 Synchronized 是非公平鎖?49
  6. 什麼是鎖消除和鎖粗化?49
  7. 為什麼說 Synchronized 是一個悲觀鎖?樂觀鎖的實現原理又是什麼?什麼是 CAS,它有什麼特性?
  8. 樂觀鎖一定就是好的嗎?
  9. 跟 Synchronized 相比,可重入鎖 ReentrantLock 其實現原理有什麼不同?
  10. 那麼請談談 AQS 框架是怎麼回事兒?
  11. 請儘可能詳盡地對比下 Synchronized 和 ReentrantLock 的異同。
  12. ReentrantLock 是如何實現可重入性的?
  13. 除了 ReetrantLock,你還接觸過 JUC 中的哪些並行工具?
  14. 請談談 ReadWriteLock 和 StampedLock。
  15. 如何讓 Java 的執行緒彼此同步?你瞭解過哪些同步器?請分別介紹下。
  16. CyclicBarrier 和 CountDownLatch 看起來很相似,請對比下呢?
  17. Java 執行緒池相關問題
  18. Java 中的執行緒池是如何實現的?
  19. 建立執行緒池的幾個核心構造引數?
  20. 執行緒池中的執行緒是怎麼建立的?是一開始就隨著執行緒池的啟動建立好的嗎?
  21. 既然提到可以通過設定不同引數建立出不同的執行緒池,那麼 Java 中預設實現好的執行緒池又有哪些呢?請比較它們的異同
  22. 如何在 Java 執行緒池中提交執行緒?
  23. 什麼是 Java 的記憶體模型,Java 中各個執行緒是怎麼彼此看到對方的變數的?
  24. 請談談 volatile 有什麼特點,為什麼它能保證變數對所有執行緒的可見性?
  25. 既然 volatile 能夠保證執行緒間的變數可見性,是不是就意味著基於 volatile 變數的運算就是並行安全的?
  26. 請對比下 volatile 對比 Synchronized 的異同。
  27. 請談談 ThreadLocal 是怎麼解決並行安全的?
  28. 很多人都說要慎用 ThreadLocal,談談你的理解,使用 ThreadLocal 需要注意些什麼?

答案解析:

答案解析

由於篇幅原因,在這就不做全部展示了,這些題我已經整理成pdf檔案免費分享給那些有需要的朋友,同時整理也花費了蠻多時間,有需要的朋友