原创 面試官:限流的實現方式有哪些?

限流是指在各種應用場景中,通過技術和策略手段對數據流量、請求頻率或資源消耗進行有計劃的限制,以避免系統負載過高、性能下降甚至崩潰的情況發生。限流的目標在於維護系統的穩定性和可用性,並確保服務質量。 使用限流的好處有以下幾個: 保護系統穩

原创 西安有哪些值得去的互聯網公司?最新版

接下來的一段時間,我將出一些地方上比較值得去的公司,供 Java 程序員作爲找工作和跳槽時進行挑選。 西安作爲中國西部的科技和互聯網產業發展的重要城市,擁有着少些知名且對 Java 程序員具有吸引力的互聯網公司,接下來,我們將分這些公司分爲

原创 面試官:什麼是Java內存模型?

當問到 Java 內存模型的時候,一定要注意,Java 內存模型(Java Memory Model,JMM)它和 JVM 內存佈局(JVM 運行時數據區域)是不一樣的,它們是兩個完全不同的概念。 1.爲什麼要有 Java 內存模型? J

原创 面試官:如何實現多級緩存?

對於高併發系統來說,有三個重要的機制來保障其高效運行,它們分別是:緩存、限流和熔斷。而緩存是排在最前面也是高併發系統之所以高效運行的關鍵手段,那麼問題來了:緩存只使用 Redis 就夠了嗎? 1.冗餘設計理念 當然不是,不要把所有雞蛋放到

原创 面試官:如何實現10億數據判重?

當數據量比較大時,使用常規的方式來判重就不行了。 例如,使用 MySQL 數據庫判重,或使用 List.contains() 或 Set.contains() 判重就不可行,因爲 MySQL 在數據量大時查詢就會非常慢,而數據庫又是及其珍貴

原创 考研失敗如何快速找到編程工作?

考研成績馬上就要出來了,但是按照往年的錄取情況,以及自己的考試表現來預估的話,相信大部分人心裏早已有了答案。能上岸的同學還好,接下來幾年繼續自己的求學之後就好。但對於不能上岸的同學來說,已經到了不得不爲自己將來考慮的時候了。 那麼問題來了

原创 面試官:如何防止短信盜刷和短信轟炸?

短信盜刷和短信轟炸是項目開發中必須要解決的問題之一,它的優先級不亞於 SQL 注入的問題,同時它也是面試中比較常見的一個經典面試題,今天我們就來看下,如何防止這個問題。 1.概念介紹 短信盜刷和短信轟炸的概念如下: 短信盜刷是指使用某種

原创 面試官:Sentinel是如何實現限流的?

限流是一種通過控制系統對外提供的資源、服務或接口的訪問數量或速率,以保護系統免受過載的一種策略。 它的目的是確保系統能夠在承受範圍內提供穩定和可靠的服務,避免因過多的請求而導致系統崩潰、資源耗盡或響應延遲過高的情況發生。 在 Sent

原创 面試官:SpringCloudGateway過濾器類型有哪些?

在 Spring Cloud Gateway 中,過濾器是在請求到達目標服務之前或之後,執行某些特定操作的一種機制。例如,它可以實現對傳入的請求進行驗證、修改、日誌記錄、身份驗證、流量控制等各種功能。 在 Spring Cloud Gat

原创 面試官:什麼是JIT、逃逸分析、鎖消除、棧上分配和標量替換?

JIT、逃逸分析、鎖消除、棧上分配和標量替換等都屬於 JVM 的優化手段,JVM 優化手段是指在運行 Java 程序時,通過對字節碼的編譯和執行過程進行優化,以提升程序的性能和效率。 JVM 優化手段主要有以下幾個: JIT(Just-

原创 面試官:說一下零拷貝技術的實現原理?

零拷貝(Zero-copy)技術是一種計算機操作系統中用於提高數據傳輸效率的優化策略。在傳統的數據傳輸過程中,需要將數據從一個緩衝區拷貝到另一個緩衝區,然後再傳輸給目標。這涉及到多次的 CPU 和內存之間的數據拷貝操作,會消耗 CPU 的

原创 解決跨域問題的8種方法,含網關、Nginx和SpringBoot~

跨域問題是瀏覽器爲了保護用戶的信息安全,實施了同源策略(Same-Origin Policy),即只允許頁面請求同源(相同協議、域名和端口)的資源,當 JavaScript 發起的請求跨越了同源策略,即請求的目標與當前頁面的域名、端口、協議

原创 目前實習,要不要辭職回家過年?

今天早上上班很有意思,同時收到了兩個同學詢問,關於要不要辭職回家過年的消息。但是我卻給了兩個完全相反的意見,這是怎麼回事呢?一起來看。 1.大廠實習的A同學 A 同學是 25 屆的學生,目前在國內某知名公司實習,該公司的薪資是出了名的高,普

原创 面試官:Redis持久化能關嗎?怎麼關?

數據持久化是指將數據從內存中,保存到磁盤或其他持久存儲介質的過程,這樣做的目的是爲了保證數據不丟失。 而 Redis 的持久化功能默認是開啓的,這樣做的目的也是爲了保證程序的穩定性(防止緩存雪崩、緩存擊穿等問題)和數據不丟失。 Redis

原创 面試官:SpringBoot如何實現緩存預熱?

緩存預熱是指在 Spring Boot 項目啓動時,預先將數據加載到緩存系統(如 Redis)中的一種機制。 那麼問題來了,在 Spring Boot 項目啓動之後,在什麼時候?在哪裏可以將數據加載到緩存系統呢? 實現方案概述 在 Spr