Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

面試清單(Java崗)Java+JVM+數據庫+算法+Spring+中間件+設計模式

2020 年 2 月 12 日 Java架构胖胖

“金九銀十”的秋招熱潮已經過去大半了,經過8月9月這兩個月的秋招奮戰,終于成功拿下了一些大廠的offer。小編經過這麽多次的面試,這兩天整理了一份面試清單分享給大家,希望能給大家一點幫助(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文檔,有需要的朋友可以評論“面試”獲取。

下面列舉整理資料的部分截圖

1.Java專題面試(Java,數據庫,Redis,中間件,框架,並發,分布式,線程,微服務,Netty,Spring,設計模式等)

面試清單(Java崗)Java+JVM+數據庫+算法+Spring+中間件+設計模式

2.算法刷題

面試清單(Java崗)Java+JVM+數據庫+算法+Spring+中間件+設計模式

3.整理的一些java書籍資料(PDF)

面試清單(Java崗)Java+JVM+數據庫+算法+Spring+中間件+設計模式

重要的事情再說一遍,資料免費領取方式評論“面試'

.再分享一下最新的大廠面試題+解析(百度,華爲,騰訊,迅雷,網易,中興,北京中軟等)

面試清單(Java崗)Java+JVM+數據庫+算法+Spring+中間件+設計模式

總結的66個java面試知識點(含答案解析)

面試清單(Java崗)Java+JVM+數據庫+算法+Spring+中間件+設計模式

相關文章:

  • 阿裏問題定位神器 Arthas 操作實踐,定位線上BUG,超給力
  • Spring 源碼學習(十) Spring mvc
  • 正則表達式在Java中的使用
  • 現代編程語言哪家強?2020年,你或許應該了解這7門編程語言
  • 程序員:單個TCP(Socket)連接,發送多個文件
  • 從 Spring Cloud 看一個微服務框架的「...
科技

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2025 快讀 | 服務協議 | DMCA | 聯繫我們