前言
金三銀四面試季雖然已經過去,但是還是有不少程序員以及應聘生還在找工作,最近跟朋友在一起聚會的時候,提了一個問題,說1-3年的Java程序員,薪資區間大致是在15-25K左右,那有沒有可能提前達到30K的薪資呢?有人說這隻能是大企業或者互聯網企業工程師才能拿到。也許是的,小公司或者非互聯網企業拿30K的不太可能是初級開發或者碼農了,應該已經轉管理。還有區域問題,這個是不在我的考慮範圍內 因爲除了北上廣深杭,其他地方也很難達到。
Mysql
- 與 Oracle 相比, Mysql 有什麼優勢?
- 簡潔描述 Mysql 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?
- 在 Mysql 中 ENUM 的用法是什麼?
- Mysql 中使用什麼存儲引擎?
- 如何使用 Unix shell 登錄 Mysql
- Mysql 中有哪幾種鎖?簡單介紹一下
JVM
- GC 的三種收集方法:標記清除、標記整理、複製算法的原理與特點,分別用在什麼地方,如果讓你優化收集方法,有什麼思路?
- GC 收集器有哪些? CMS 收集器與 G1 收集器的特點。
- JVM 內存分哪幾個區,每個區的作用是什麼?
- 如和判斷一個對象是否存活?(或者 GC 對象的判定方法)
- 簡述 java 類加載機制?
- 什麼是類加載器,類加載器有哪些?
Tomcat
- Tomcat 的缺省端口是多少,怎麼修改?
- tomcat 有哪幾種 Connector 運行模式(優化)?
- Tomcat 有幾種部署方式?
- 監視 Tomcat 的內存使用情況
- Tomcat 一個請求的完整過程
- Tomcat 工作模式
Redis
- redis 主從複製如何實現的? redis 的集羣模式如何實現? redis 的 key 是如何尋址的?
- 使用 redis 如何設計分佈式鎖?說一下實現思路?使用 zk 可以嗎?如何實現?這兩種有什麼區別?
- 知道 redis 的持久化嗎?底層如何實現的?有什麼優點缺點?
- redis 過期策略都有哪些? LRU 算法知道嗎?寫一下 java 代碼實現
- 緩存穿透、緩存擊穿、緩存雪崩解決方案?
- 在選擇緩存時,什麼時候選擇 redis,什麼時候選擇 memcached
多線程
- 現在有 T1、 T2、 T3 三個線程,你怎樣保證 T2 在 T1 執行完後執行, T3 在 T2 執行完後執行?
- 在 java 中 wait 和 sleep 方法的不同?
- 用 Java 編程一個會導致死鎖的程序,你將怎麼解決?
- 什麼是競爭條件?你怎樣發現和解決競爭?
- 爲什麼我們調用 start()方法時會執行 run()方法,爲什麼我們不能直接調用 run()方法?
- Java 中你怎樣喚醒一個阻塞的線程?
設計模式
- 在 Java 中,爲什麼不允許從靜態方法中訪問非靜態變量?
- 在 Java 中,什麼時候用重載,什麼時候用重寫?
- 舉例說明什麼情況下會更傾向於使用抽象類而不是接口?
- Java 中什麼叫單例設計模式?請用 Java 寫出線程安全的單例模式
- 什麼是設計模式?你是否在你的代碼裏面使用過任何設計模式?
- 請列舉出在 JDK 中幾個常用的設計模式?
Nginx
- 請列舉 Nginx 的一些特性
- 請解釋 Nginx 如何處理 HTTP 請求。
- 使用“反向代理服務器”的優點是什麼?
- 請列舉 Nginx 服務器的最佳用途。
- 請解釋你如何通過不同於 80 的端口開啓 Nginx?
- 在 Nginx 中,解釋如何在 URL 中保留雙斜線?
ActiveMQ
- ActiveMQ 服務器宕機怎麼辦?
- ActiveMQ 中的消息重發時間間隔和重發次數嗎?
Kafka
- Kafka 判斷一個節點是否還活着有那兩個條件?
- Kafa consumer 是否可以消費指定分區消息?
- Kafka 消息是採用 Pull 模式,還是 Push 模式?
- Kafka 存儲在硬盤上的消息格式是什麼?
- Kafka 創建 Topic 時如何將分區放置到不同的 Broker 中
- kafka 的 ack 機制
以上這些都是我總結的Java面試題,以下今年最新整理出的BATJ資深Java必考題和答案。
答案獲取方式
關注後+回覆關鍵詞 【面試資料】即可獲取~