2025年最新秋招java后端面試八股文+場景題

一、Java核心八股文(2025年最新版)

1. Java基礎
  1. HashMap vs ConcurrentHashMap

    • HashMap:非線程安全,JDK1.8后采用數組+鏈表/紅黑樹,擴容時可能死循環(JDK1.7)。

    • ConcurrentHashMap:JDK1.8改用CAS+synchronized優化鎖粒度,分段鎖淘汰。

  2. synchronized vs ReentrantLock

    • synchronized:JVM內置鎖,非公平鎖,不可中斷。

    • ReentrantLock:支持公平鎖、可中斷、Condition條件隊列。

  3. volatile的作用與限制

    • 保證可見性(強制主存讀取)和有序性(禁止指令重排序),但不保證原子性(如i++AtomicInteger)。

  4. JVM內存模型

    • 線程私有區:虛擬機棧、本地方法棧、程序計數器。

    • 線程共享區:堆、方法區(JDK1.8后為元空間)。

  5. G1垃圾回收器特點

    • Region分區、可預測停頓、適合大內存應用。


二、高并發與分布式系統(2025重點)

1. 并發編程
  1. 線程池參數設置

    • corePoolSize(核心線程數)、maxPoolSize(最大線程數)、workQueue(任務隊列)、拒絕策略1。

    • IO密集型CPU核心數 * 2CPU密集型CPU核心數 + 1

  2. AQS原理

    • 核心:state(資源狀態)+?CLH隊列(線程排隊),實現類如ReentrantLockCountDownLatch

  3. 分布式鎖方案

    • Redis(SETNX + RedLock)、ZooKeeper(臨時節點 + Watch機制)。

2. 分布式場景題
  1. 如何設計百萬級QPS的秒殺系統?

    • 分層削峰:Nginx限流 → Redis預減庫存(Lua腳本保證原子性)→ 消息隊列異步處理。

    • 熱點隔離:獨立Redis集群處理秒殺商品。

  2. CAP理論應用

    • 支付系統側重CP(一致性+分區容錯性),社交系統可能選擇AP。


三、數據庫與緩存優化(2025高頻)

1. MySQL深度優化
  1. 十億級數據分頁查詢優化

    • ES?search_after(深度分頁)、覆蓋索引 + 禁止跳頁(LIMIT優化)。

  2. 索引失效場景

    • LIKE '%xx'、函數計算、OR條件、隱式類型轉換。

  3. MVCC實現原理

    • ReadView?+?Undo Log版本鏈,解決不可重復讀 & 幻讀。

2. Redis高級應用
  1. 緩存一致性方案

    • 延遲雙刪(先刪緩存→更新DB→再刪緩存)、訂閱Binlog(Canal監聽變更)。

  2. 緩存雪崩預防

    • 隨機過期時間 + 多級緩存(本地→Redis→DB)+ 熔斷降級(Sentinel)。


四、微服務與架構設計(2025新趨勢)

1. 微服務核心問題
  1. Spring Boot自動配置原理

    • @EnableAutoConfiguration?+?META-INF/spring.factories?+ 條件注解(@Conditional)。

  2. 服務熔斷策略

    • Sentinel動態調整閾值(基于慢調用比例觸發降級)。

2. 系統設計題
  1. 設計高可用支付系統

    • 一致性:TCC事務 + 對賬機制。

    • 容災:同城多活(數據同步:MySQL Binlog + Kafka)。

  2. 全鏈路灰度發布實現

    • 流量標記(Header傳遞) + Service Mesh(Istio動態路由)。


五、2025年新興技術(加分項)

  1. 云原生技術

    • K8s在大促中的應用(HPA自動擴縮容)、Serverless(適合定時任務/日志分析)。

  2. 大模型與編程結合

    • 使用AI輔助代碼生成(如GitHub Copilot),需關注代碼安全審查。


六、面試技巧(2025適用)

  1. 項目深挖

    • 用STAR法則描述:背景(S)、任務(T)、行動(A)、結果(R)。

    • 示例:“通過Redis集群優化,商品查詢RT從200ms降至50ms”

  2. 算法準備

    • LeetCode中等難度高頻題:二叉樹遍歷、DFS/BFS、動態規劃。


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/89617.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/89617.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/89617.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

esp32 sd卡

ref: platform io & arduino Boards — PlatformIO latest documentation https://github.com/espressif/arduino-esp32/blob/master/libraries/SD_MMC/README.md SD 卡實驗 | 極客俠GeeksMan GitHub - fabianoriccardi/ESPLogger: An Arduino library pro…

Java學習--------消息隊列的重復消費、消失與順序性的深度解析?

在 Java 分布式系統開發中,消息隊列的應用已十分普遍。但隨著業務規模擴大,消息的重復消費、意外消失、順序錯亂等問題逐漸成為系統穩定性的隱患。本文將從 Java 開發者的視角,深入分析這三大問題的產生原因、業務后果,并結合具體…

【Oracle】centos7離線靜默安裝oracle11g(p13390677_112040)

博文地址:https://blog.csdn.net/gitblog_06670/article/details/142569814 倉庫地址:https://gitcode.com/Open-source-documentation-tutorial/31eb1/?utm_sourcedocument_gitcode&indexbottom&typecard 參考安裝地址: 收費版&…

智能設備暢想

### 智能設備暢想 突然想到了一個好主意 因為最近在查無人機的相關資料(很早之前就想搞個無人機玩玩但始終沒有買) 在了解自組裝方面的內容時,和AI溝通了下 正好之前組裝的 小智AI 基本上已經完善了,也正在考慮其在其他方向拓展的…

SpringAI——ChatModel

我的前面一篇文章(SpringAI——ChatClient配置與使用)中講了ChatClient,它是一個構建于 ChatModel 之上的高層封裝,它提供了更豐富的對話交互能力。可以這么說ChatModel相當于發動機,ChatClient相當于一臺含有發動機、…

Zabbix監控K8S的PV信息詳細教程!

文將介紹如何使用Zabbix自定義鍵值腳本方式監控K8S的PV卷狀態等信息。 在Kubernetes (K8S) 中,PersistentVolume (PV) 是集群中的一個抽象層,它代表了底層存儲資源,例如網絡存儲系統(如NFS、Ceph、GlusterFS等)或本地存…

wx小程序原生開發使用高德地圖api

第一步:注冊高德地圖api的key第二步:下載amap-wx.js 放到項目的某個目錄第三步:配置app.json(必須,因為需要定位功能,)"requiredPrivateInfos": ["getLocation"],"per…

如何通過mac的前24bit,模糊確認是那一臺什么樣的設備

MAC Address Lookup - MAC/OUI/IAB/IEEE Vendor Manufacturer Search Wireshark ? Go Deep 上面這兩個網址提供了,正對mac 的前24位,查找對應的網絡設備廠商信息,可以讓我們在運維過程中模糊的判斷大約是什么型號的設備 使用macvendorloo…

【爬蟲】04 - 高級數據存儲

爬蟲04 - 高級數據存儲 文章目錄爬蟲04 - 高級數據存儲一:加密數據的存儲二:JSON Schema校驗三:云原生NoSQL(了解)四:Redis Edge近端計算(了解)五:二進制存儲1:Pickle2:Parquet一:加…

UDP和TCP的主要區別是什么?

在網絡通信中,TCP(傳輸控制協議)和UDP(用戶數據報協議)是兩種核心的傳輸層協議。它們各自的特點和應用場景截然不同,理解兩者的區別對于選擇合適的通信方式至關重要。本文將通過幾個關鍵點,用簡…

Softhub軟件下載站實戰開發(十八):軟件分類展示

Softhub軟件下載站實戰開發(十八):軟件分類展示 🖥? 在之前文章中,我們實現了后臺管理相關部分,本篇文章開始我們來實現用戶端頁面,由于內網使用,不需要sso優化等特性,我…

linux--------------------BlockQueue的生產者消費模型

1.基礎BlockingQueue的生產者消費模型 1.1 BlockQueue 在多線程編程中阻塞隊列是一種常用于實現生產者和消費者模型的數據結構,它與普通的隊列區別在于,當隊列為空時,從隊列獲取元素的操作將被阻塞,直到隊列中放入了新的數據。當…

堆排序算法詳解:原理、實現與C語言代碼

堆排序(Heap Sort)是一種高效的排序算法,利用二叉堆數據結構實現。其核心思想是將待排序序列構造成一個大頂堆(或小頂堆),通過反復調整堆結構完成排序。下面從原理到實現進行詳細解析。一、核心概念&#x…

SSM框架——注入類型

引用類型的注入:Setter方法簡單類型的注入:定義簡單實例和方法在配置文件中對bean進行配置,使用porperty屬性 值用value(ref是用來獲取bean的)構造器方法:構造器方法中需要寫name,這樣程序就會耦…

信息學奧賽一本通 1552:【例 1】點的距離

【題目鏈接】 ybt 1552:【例 1】點的距離 【題目考點】 1. 最近公共祖先(LCA):倍增求LCA 知識點講解見:洛谷 P3379 【模板】最近公共祖先(LCA) 【解題思路】 首先用鄰接表保存輸入的無權圖…

1Panel中的OpenResty使用alias

問題 在服務器上使用了1Panel的OpenResty來管理網站服務,當作是一個Nginx用,想做一個alias來直接管理某個文件夾的文件,于是直接在其中一個網站中使用了alias配置。 location /upload {alias /root/upload;autoindex on;charset utf-8;charse…

小明記賬簿煥新記:從單色到多彩的主題進化之路

【從冷靜藍到多彩世界,這一次我們重新定義記賬美學】 曾經,打開“小明記賬簿”是一片沉穩的藍色海洋,它像一位理性的財務管家,默默守護著你的每一筆收支。但總有人悄悄問:“能不能多一些顏色?”今天&#x…

Apache IoTDB(1):時序數據庫介紹與單機版安裝部署指南

目錄一、Apache IoTDB 是什么?1.1 產品介紹1.2 產品體系1.3 產品架構二、IoTDB 環境配置2.1 Linux系統需準備環境2.2 Windows系統需準備環境2.3 網絡配置2.3.1 關閉防火墻2.3.2 查看端口是否占用2.3.3 避雷經驗三、IoTDB 單機版系統部署安裝指南3.1 產品下載3.2 注意…

Python 圖片爬取入門:從手動下載到自動批量獲取

前言 想批量下載網頁圖片卻嫌手動保存太麻煩?本文用 Python 帶你實現自動爬取,從分析網站到代碼運行,步驟清晰,新手也能快速上手,輕松搞定圖片批量獲取。 1.安裝模塊 在開始爬取圖片前,我們需要準備好工具…

aspect-ratio: 1 / 1樣式在部分手機瀏覽器中失效的問題怎么解決?

最近在uniapp開發時又遇到了安卓手機不兼容問題&#xff0c;ios系統無影響。開發背景&#xff1a;小編想通過網格布局來實現答題卡的布局&#xff0c;實現五列多行的形式。代碼片段&#xff1a;<view class"question-grid"><viewv-for"(question, inde…