最新Java崗面試清單:Java+JVM+MySQL+演算法+Spring+MQ+設計模式+Redis
走過春招,即是秋招,小編經過這麼多次的面試,這兩天整理了一份面試清單分享給大家,希望能給大家一點幫助(java方向),覺得有幫助的同學可以轉發點個贊哦~~
01 JAVA基礎
1.1 java知識點
- Hashmap 原始碼級掌握,擴容,紅黑樹,最小樹化容量,hash衝突解決,有些面試官會提出發自靈魂的審問,比如為什麼是紅黑樹,別的樹不可以嗎;為什麼8的時候樹化,4不可以嗎,等等
- concureentHashMap,段鎖,如何分段,和hashmap在hash上的區別,效能,等等
- HashTable ,同步鎖,這塊可能會問你synchronized關鍵字 1.6之後提升了什麼,怎麼提升的這些
- ArrayList 優勢,擴容,什麼時候用
- LinkedList 優勢,什麼時候用,和arraylist的區別 等等
- 基本型別和包裝型別的區別,涉及自動裝箱和拆箱,怎麼做的,原理
- String ,StringBuffer,StringBuilder哪個是安全的
- 字串編碼的區別,被問到過,我覺得比較容易被忽視的一個點
- 什麼是泛型,怎麼用泛型
- static能不能修飾threadLocal,為什麼,這道題我當時一聽到其實挺懵逼的
- Comparable和Comparator介面是幹什麼的,其區別
- 多型的原理是什麼,感覺這個很容易被問到
- 介面和抽象類,面試官問我是怎麼理解的,我說介面對應功能,抽象類對應屬性,然後面試官給我說了他的看法,說抽象類更偏向於一種模板~ 然後又交流了一下各自的想法
- 如何透過反射和設定物件私有欄位的值
- 快速失敗(fail-fast)和安全失敗(fail-safe)的區別是什麼
- synchronized 的實現原理以及鎖最佳化?
- volatile 的實現原理?
- Java 的訊號燈?
- synchronized 在靜態方法和普通方法的區別?
- 怎麼實現所有執行緒在等待某個事件的發生才會去執行?
- CAS?CAS 有什麼缺陷,如何解決?
- synchronized 和 lock 有什麼區別?
- Hashtable 是怎麼加鎖的 ?
- List,Map,Set介面在取元素師,各有什麼特點
- 如何執行緒安全的實現一個計數器
- 生產者消費者模式,要求手寫過程式碼,還是要知道的
- 單例模式,餓漢式,懶漢式,執行緒安全的做法,兩次判斷instance是否為空,每次判斷的作用是什麼。
- 執行緒池,這個還是很重要的,在生產中用的挺多,四個執行緒池型別,其引數,引數的理解很重要,corepoolSize怎麼設定,maxpoolsize怎麼設定,keep-alive各種的,和美團面試官探討過阻塞佇列在生產中的設定,他說他一般設定為0,防止使用者阻塞
- cyclicbarrier 和countdownlatch的區別,個人理解 賽馬和點火箭
- 執行緒回撥,這塊 被問過讓我設計一個RPC,怎麼實現,其實用到了回撥這塊的東西
- sleep 和yeild方法有什麼區別
- volatile關鍵字,可見性。
- 樂觀鎖和悲觀鎖的使用場景
- 悲觀鎖的常見實現方式:lock synchronized retreentlock
- 樂觀鎖:CAS MVCC
- 讀寫鎖的實現方式,16位int的前八位和後八位分別作為讀鎖和寫鎖的標誌位
- 死鎖的條件,怎麼解除死鎖,怎麼觀測死鎖。
- 希望大家能夠好好看一下反射的原理,怎麼確定類,怎麼調方法
- RPC框架,同步非同步,響應時間,這些都被問到過,還讓設計過
- 同步,非同步,阻塞,非阻塞 在深信服的面試中遇到過,最好再找一些應用場景加以理解
1.2 JVM
- 記憶體模型以及分割槽,需要詳細到每個區放什麼。
- 堆裡面的分割槽:Eden,survival (from+ to),老年代,各自的特點。
- 物件建立方法,物件的記憶體分配,物件的訪問定位。
- GC 的兩種判定方法
- GC 的三種收集方法:標記清除、標記整理、複製演算法的原理與特點,分別用在什麼地方,如果讓你最佳化收集方法,有什麼思路?
- GC 收集器有哪些?CMS 收集器與 G1 收集器的特點
- Minor GC 與 Full GC 分別在什麼時候發生?
- JVM 記憶體分哪幾個區,每個區的作用是什麼?
- 如和判斷一個物件是否存活?(或者 GC 物件的判定方法)
- java 中垃圾收集的方法有哪些?
- 類載入器雙親委派模型機制?
- java 記憶體模型,java 類載入過程?
- 什麼是類載入器,類載入器有哪些?
- 簡述 java 記憶體分配與回收策率以及 Minor GC 和Major GC
02 資料庫
2.1 MySQL
- 事務四大特性(ACID)原子性、一致性、隔離性、永續性?
- 事務的併發?事務隔離級別,每個級別會引發什麼問題,MySQL預設是哪個級別?
- MySQL常見的三種儲存引擎(InnoDB、MyISAM、MEMORY)的區別?
- MySQL的MyISAM與InnoDB兩種儲存引擎在,事務、鎖級別,各自的適用場景?
- 查詢語句不同元素(where、jion、limit、group by、having等等)執行先後順序
- 索引為什麼要用B+樹,B+樹和B-樹的區別是什麼
- mysql的預設事務級別,一共有哪些事務級別
- mysql的一些語句,這些肯定需要掌握的
- mysql鎖,行鎖,表鎖 ,什麼時候發生鎖,怎麼鎖,原理
- 資料庫最佳化,最左原則啊,水平分表,垂直分表
- 什麼是臨時表,臨時表什麼時候刪除?
- MySQL B+Tree索引和Hash索引的區別?
- sql查詢語句確定建立哪種型別的索引?如何最佳化查詢?
- 聚集索引和非聚集索引區別?
- 有哪些鎖(樂觀鎖悲觀鎖),select 時怎麼加排它鎖?
- 非關係型資料庫和關係型資料庫區別,優勢比較?
- 資料庫三正規化,根據某個場景設計資料表?
- 資料庫的讀寫分離、主從複製,主從複製分析的 7 個問題?
- 使用explain最佳化sql和索引?
- MySQL慢查詢怎麼解決?
- 什麼是 內連線、外連線、交叉連線、笛卡爾積等?
- mysql都有什麼鎖,死鎖判定原理和具體場景,死鎖怎麼解決?
- varchar和char的使用場景?
- mysql 高併發環境解決方案?
- 資料庫崩潰時事務的恢復機制(REDO日誌和UNDO日誌)?
03 Spring相關
spring的兩大特性- ioc aop,實現原理
- 如果存在A依賴B,B依賴A,那麼是怎麼加到IOC中去的
- beanFactory的理解,怎麼載入bean
- FactoryBean的理解
- 基於註解的形式,是怎麼實現的, 你知道其原理嗎,說一下
- 依賴衝突,有碰到過嗎,你是怎麼解決的~
- bean的生命週期
- spring中的自動裝配 方式
- BeanFactory 和 FactoryBean
- Spring IOC 的理解,其初始化過程?
- BeanFactory 和 ApplicationContext?
- Spring Bean 的生命週期,如何被管理的?Spring Bean 的載入過程是怎樣的?
- 如果要你實現Spring AOP,請問怎麼實現?
- 如果要你實現Spring IOC,你會注意哪些問題?
- Spring 是如何管理事務的,事務管理機制?
- Spring 的不同事務傳播行為有哪些,幹什麼用的?
- Spring 中用到了那些設計模式?
- Spring MVC 的工作原理?
- Spring 迴圈注入的原理?
- Spring 如何保證 Controller 併發的安全?
- 你一般是怎麼對mvc專案進行分層的
- dispatch-servlet的工作原理
- 為什麼有了springmvc還要在專案中使用spring?
- springmvc的執行機制,dispatch -》 hanldermapping-—》handler -》handlerAdapter-》執行handler-》modelandview -》 返回mv -》 檢視解析器-》返回view -》 渲染響應
- 怎麼防止依賴注入
- 怎麼讓mapper 和xml對應
- 如何自動包裝物件
- 和spring相比,做了什麼改變
- starter你知道哪些
- 如何部署springmvc專案 以及如何部署springboot專案
- springboot的外掛,你使用過哪些
04 中介軟體
4.1 redis
- Redis用過哪些資料資料,以及Redis底層怎麼實現
- Redis快取穿透,快取雪崩
- 如何使用Redis來實現分散式鎖
- Redis的併發競爭問題如何解決
- Redis持久化的幾種方式,優缺點是什麼,怎麼實現的
- Redis的快取失效策略
- Redis叢集,高可用,原理
- Redis快取分片,Redis的資料淘汰策略
- 為什麼選擇redis,有什麼好處,基於記憶體,抗壓
- redis叢集怎麼進行資料分配,hash槽
- redis的主從複製是怎麼實現的
- redis的資料結構 最常問 hash是什麼, sorted set怎麼實現的
- 因為專案的原因,問我redis是怎麼保證高可用的,主從和叢集怎麼加在一起
- redis 和memcache的區別
- redis 分散式鎖的實現原理 setNX 啥的
- redis模擬session,除了redis你還考慮過別的嗎
- redis的快取擊穿,怎麼處理這個問題
- redis是基於記憶體的,那麼它有持久化嗎,aof rdb
- aof和rdb的優缺點,你在專案中使用的哪一個
4.2 MQ
- 為什麼選擇rabbitMQ, 社群活躍,高併發
- 別的MQ也要了解,比如RocketMQ(阿里的,java開發,再次開發,併發高,分散式,出錯少)
- ActiveMQ, kafka
- topic 和 block
- MQ的作用,同步轉非同步,消除峰值
- 如何保證資料一致性,即原子性,ack
- 訊息佇列在專案中的應用
4.3 nginx
- 怎麼配置負載均衡
- 怎麼限流
- 怎麼使用nginx快取
- 為什麼使用nginx,有別的替代品嗎
- 請解釋 x Nginx 如何處理 P HTTP 請求
- 在 x Nginx 中,如何使用未定義的伺服器名稱來阻止處理請求? ?
- 使用“ 反向代理伺服器 ” 的優點是什麼?
- x Nginx 伺服器上的 r Master 和 和 r Worker 程式分別是什麼?
- nginx的壓力測試,你測試過嗎,能抗住多少壓力
- 你如何透過不同於 0 80 的埠開啟 Nginx?
- 是否有可能將 x Nginx 的錯誤替換為 2 502 錯誤、 503
- s stub_status 和 和 r sub_filter 指令的作用是什麼? ?
4.5 dubbo
- 原理,怎麼用
- 和erueka有什麼區別
- 為什麼要用dubbo,不用行不行?
- 跨域請求的一些知識點
- Dubbo 支援哪些協議,每種協議的應用場景,優缺點?
- Dubbo 超時時間怎樣設定?
- Dubbo 叢集的負載均衡有哪些策略
- Dubbo 的主要應用場景?
- Dubbo 服務註冊與發現的流程?
- Dubbo 中 中 zookeeper 做註冊中心,如果註冊中心叢集都掛掉,釋出者和訂閱者之間還能通訊麼?
- dubbo 服務負載均衡策略?
05 其他外掛
5.1 shiro
- 怎麼做許可權控制
- 為什麼使用shiro,你直接使用aop不也是一樣的嗎,shiro還有標籤~各種扯
- shiro的兩個最重要的函式
- 認證和授權是怎麼做的
5.2 docker
- 和vmware的區別
- 你一般是怎麼部署的 IDEA,直接把專案部署到docker並打包到雲伺服器
- docker的好處,小,快
06 Linux
- 常見的命令
- sed 和 awk 感覺linux必考。。
- linux的使用場景,你什麼時候會用linux -- 》 佈置伺服器
- 怎麼檢視程式和殺死程式
- 列印一個資料夾中的所有檔案
- float在計算機中是怎麼儲存的,當時被問到的時候,我也在問自己,怎麼存的~~~ 佛了
- 執行緒和程式的區別
- 執行緒的通訊方式,程式的通訊方式
- 系統執行緒的數量上限是多少
- 頁式儲存的概念
- 記憶體碎片,你有了解過嗎,有想過解決方案嗎~
07 演算法
7.1 排序演算法
- 八大排序演算法真的是面試寵兒
- 最常考 快速排序 和歸併排序
- 哪些排序演算法是穩定的 哪些是不穩定的
- 堆排 也應該掌握
7.2 樹
- 根據遍歷結果恢復樹,遞迴
- 二叉搜尋樹第k大
- 樹的和為k的路徑
- 層次遍歷
- 根據層次遍歷和後序遍歷恢復樹
- 映象樹
- 樹的深度
- 是不是平衡二叉樹
7.3 連結串列
- 反轉連結串列
- 連結串列環的入口
- 交叉連結串列的交點
- 複雜連結串列的複製
- 二叉搜尋樹變成雙向連結串列
7.4 回溯演算法
- 走迷宮
- 遊戲通關
7.5 遞推演算法
- 走臺階
- 斷鋼筋
7.6 揹包問題
- 裝最多的東西
7.7 貪心演算法
- 覆蓋問題
- 時間問題
08 設計模式
- 面試中設計模式其實也是挺重要的
- Java 中什麼叫單例設計模式?請用 Java 寫出執行緒安全的單例模式
- 在 Java 中,什麼叫觀察者設計模式(observer design pattern)
- 使用工廠模式最主要的好處是什麼?在哪裡使用
- 舉一個用 Java 實現的裝飾模式(decorator design pattern) ?它是作用於物件層次還是類層次?
- 在 Java 中,什麼時候用過載,什麼時候用重寫?
- 舉例說明什麼情況下會更傾向於使用抽象類而不是介面
- 觀察者模式
- 適配模式
- 工廠模式
...
總結
記住,面試最重要的事就是:刷題刷題刷題刷題,天天作死的刷~
以上就是我在回想面試過程所能想到的一些問題,可能不夠全面,供大家參考參考,並且上面我列出的這些題目都已整理出答案,全部都是PDF文件
——
答案
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000181/viewspace-2773849/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 面試清單(Java崗):演算法+中介軟體+Spring+java+設計模式+JVM+資料庫面試Java演算法Spring設計模式JVM資料庫
- 【Java面試】Java設計模式面試題!Java設計模式面試題
- Android面試之Java設計模式Android面試Java設計模式
- 《我是面試官》設計模式-單例模式面試設計模式單例
- 圖解Java設計模式-面試題圖解Java設計模式面試題
- 【Java面試指北】單例模式Java面試單例模式
- 2018年Java程式設計師最新BAT面試題Java程式設計師BAT面試題
- Java設計模式【單例模式】Java設計模式單例
- Java設計模式 | 單例模式Java設計模式單例
- Java設計模式——單例模式Java設計模式單例
- Java設計模式–單例模式Java設計模式單例
- Java設計模式-單例模式Java設計模式單例
- Java設計模式--單例模式Java設計模式單例
- 設計模式面試 - Hamill設計模式面試
- Java設計模式系列之單例設計模式Java設計模式單例
- 淺識JAVA設計模式——單例設計模式Java設計模式單例
- java單例設計模式Java單例設計模式
- Java常用設計模式-單例模式Java設計模式單例
- Java設計模式之單例模式Java設計模式單例
- java設計模式-單例模式SingletonJava設計模式單例
- Java設計模式之(九)——門面模式Java設計模式
- 程式設計師面試系列之Java單例模式的攻擊與防禦程式設計師面試Java單例模式
- [ Java面試題 ]Java 開發崗面試知識點解析Java面試題
- 2019年阿里Java面試必問:JVM與效能優化+Redis+設計模式+分散式阿里Java面試JVM優化Redis設計模式分散式
- Java設計模式——單例模式(建立型模式)Java設計模式單例
- java設計模式其一 單例模式Java設計模式單例
- java設計模式-簡單工廠模式Java設計模式
- 有點長的 Java API 設計清單JavaAPI
- [java設計模式]破解單例設計模式,禁止偷生、超生!Java設計模式單例
- [面試專題]JS設計模式面試JS設計模式
- JAVA最新面試題分享Java面試題
- 折騰Java設計模式之單例模式Java設計模式單例
- 設計模式常見面試知識點總結(Java版)設計模式面試Java
- 2021年Java高頻面試題分享(中高階版):JVM+Redis+Kafka +資料庫+設計模式Java面試題JVMRedisKafka資料庫設計模式
- [java設計模式]單例設計模式,程式也要進行計劃生育。Java設計模式單例
- java23種設計模式-門面模式(外觀模式)Java設計模式
- JAVA設計模式 1 設計模式介紹、單例模式的理解與使用Java設計模式單例
- Java入門之初識設計模式---單列模式Java設計模式