收藏 / 列表

軟件求生 - 為什麼 Redis 單線程卻比多線程還快?真實原因震撼我

大家好,我是小米,一個在互聯網研發裏滾了十來年、對技術既執着又好奇、寫代碼比寫週報開心的 31 歲男人。 今天這篇文章想和你聊聊一個面試“高頻炸裂”的問題——Redis 線程模型到底是怎麼回事? 別小看這個問題,它比你想象的“壞”多了。 有一次我去一家還算知名的互聯網公司面試,面試官是個戴着黑框眼鏡、看起來很斯文的小哥,但當他一開口,我立馬意識到這人不好

單線程 , redis , yyds乾貨盤點 , 數據庫 , 多線程

老污的貓 - 領域驅動設計(Domain-Driven Design)

DDD 全稱Domain-Driven Design,意為領域驅動設計,是一種軟件開發的方法論,強調通過領域模型來指導複雜系統的設計與開發,核心概念如下 限界上下文(Bounded Context) 實體(Entity)、值對象(Value Object) 聚合(Aggregate)、領域事件(Domain Event) 通用語言(Ubiquitous Language) DDD M

程序員

大廠碼農老A - 凌晨零點,一個TODO,差點把我們整個部門抬走

那晚杭州的悶熱,至今記憶猶新。 2021年,我剛來到杭州這座“卷城”,入職了一家夢想中的互聯網大廠。作為一名電商新人,我一頭扎進了促銷和會場的研發中。 那晚,我們正為一個S級的“會員閃促”活動做最後的護航,它將在零點準時生效。作戰室裏燈火通明,所有人都盯着大盤,期待着活動上線後,GMV曲線能像火箭一樣發射。 然而,我們等來的不是火箭,而是雪崩。 剛過0點,登登登登… 告警羣裏的消息開始瘋狂刷屏,聲

springboot , JAVA , 故障 , 後端 , 前端

悲傷的鴨蛋 - dependencies、dependencyManagement區別

對比項 dependencyManagement dependencies 功能 聲明版本(不引入依賴) 實際引入依賴到項目 作用 統一管理版本,避免衝突 決定項目運行時依賴 生效範圍 當前項目及子項目 僅當前項目 版本控制 子項目默認繼承 可覆蓋父項目版本 總結: dependencyManagement:定規矩(版本),不幹活(不引入)。 dependenc

maven , dependencies , dependency-management

打盹的猴子 - 跨域請求(CORS)如何解決?

1. CORS 產生的原因 CORS 全稱為(Cross-Origin Resource Sharing:跨站資源共享),跨域請求是由於瀏覽器的同源策略(Same-Origin Policy)引起的,那麼 CORS 的產生和瀏覽器的同源策略有關係,我們先了解什麼是同源策略。 2. 什麼是同源策略 SOP 是所有的現代瀏覽器都具備的安全措施,它不允許從一個加載的js腳本和資源的 Origin 域與另

JAVA , 跨域 , Javascript

vivo互聯網技術 - 百萬級羣聊的設計實踐

作者:來自 vivo 互聯網服務器團隊- Cai Linfeng 本文介紹了服務端在搭建 Web 版的百萬人級別的羣聊系統時,遇到的技術挑戰和解決思路,內容包括:通信方案選型、消息存儲、消息有序性、消息可靠性、未讀數統計。 一、引言 現在IM羣聊產品多種多樣,有國民級的微信、QQ,企業級的釘釘、飛書,還有許多公司內部的IM工具,這些都是以客户端為主要載體,而且羣聊人數通常都是有限制,微信正常羣人數

im , websocket , MySQL , nosql , JAVA

牛肉燒烤屋 - 計算機網絡——常見的跨域方案

跨域是什麼? 跨域問題是瀏覽器的安全機制,即同源策略(Same-origin policy) 限制不同源之間的交互,從而保證資源的安全 同源策略限制內容 Cookie、LocalStorage、IndexedDB 等存儲性內容只有同源才能訪問 AJAX 請求發送後,響應內容被瀏覽器攔截了 DOM 允許跨域加載的資源 img src=XXX link href=XXX scri

JAVA , 計算機網絡 , 後端

seazhan - 【手寫 RPC】手寫一個RPC框架 使用Netty + java虛擬線程

【手寫RPC框架】如何使用netty手寫一個RPC框架 結合新特性 虛擬線程 什麼是RPC框架 RPC(Remote Procedure Call)遠程過程調用,是一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC框架是一種遠程調用的框架,它可以讓你像調用本地方法一樣調用遠程方法。 避免了開發人員自己去封裝網絡請求、連接管理、序列化、反序列化等操作,提高了開發效率。 N

框架學習 , 協程 , rpc , JAVA

王中陽講編程 - 金九銀十,分享好上岸的中小廠面經!

先來問一下大家,如果你現在拿到兩個offer,一個是薪資更高的中小廠,一個是規模大、技術先進的大廠,你會選擇哪個offer? 不少粉絲股東留言説上岸大廠太難了,有沒有好上岸的中小廠的最新面經。 必須安排,今天分享一位朋友社招的面經: 富途 一面 http相較於https多了什麼步驟? https證書為什麼一邊是對稱加密,一邊是非對稱加密(沒有回答出來) 解析:非對稱加密是為了保護證書裏的對

面試 , 後端

字節幺零二四 - 源碼解讀 | Java中ReentrantReadWriteLock的實現原理

本文將介紹Java中ReentrantReadWriteLock的實現原理,從JDK源碼層面講解讀寫鎖的加鎖、釋放鎖的流程,最後對流程進行總結。 讀寫鎖概述 讀寫鎖 ReentrantReadWriteLock 的依賴關係如下圖所示。 讀寫鎖的基本使用如下 ReentrantReadWriteLock lock = new ReentrantReadWriteLock(); Reentrant

源碼 , JAVA , juc , 併發編程

Awbeci - SpringCloud-解決WebFlux異步線程無法獲取ThreadLocal中的用户信息

前言 之前閲讀《Spring微服務實戰》這本書時,裏面提供了微服務如何存儲用户的信息,但是最近升級到了Java17以及SpringCloud2022.0.0之後,異步編程是官方推薦的主流寫法,而之前的寫法是同步的,所以在存儲和解析用户信息時導致獲致不到用户信息情況,下面我們來解決這個問題。 操作 我們先看看之前的寫法: UserContext.java @Component public clas

webflux , springcloud , springboot , JAVA

lindsay_bubble - Leetcode 84_柱狀圖中最大的矩形

給定 n 個非負整數,用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰,且寬度為 1 。 求在該柱狀圖中,能夠勾勒出來的矩形的最大面積。 想法:感覺這個題考的是數學,是邏輯。 怎麼找矩形呢?就是當前位置的最高點,向左和向右畫矩形,找他比他矮的點left, right,就停止。 高度就是height[i] 寬度就是(right-left+1)-2,因為找到的那兩個點是不能算進

leetcode , , JAVA

wasdquiop - centos7 安裝 jdk

卸載舊版本 新環境虛擬機有自己自帶的openjdk,在安裝jdk前需要先把虛擬機的卸掉,防止多個jdk衝突 查看已安裝jdk rpm -qa | grep jdk rpm -qa | grep java 如果存在,挨個刪除已有版本: yum -y remove jdk版本 上傳 安裝包 鏈接: https://pan.baidu.com/s/1cOV10HZAZQPtRU1XyXG1tw

JDK , centos7 , Linux , JAVA , 程序員

我不是碼農 - hibernate的@ManyToOne(fetch=FetchType.LAZY)無效原因

遇到了一個hibernate查詢問題,當查詢實體時,並沒有任何顯式調用@ManyToOne註解的屬性的情況下,依然會進行查詢,(開始使用idea進行debug的時候,發現在debug過程中,idea會觸發hibernate的加載操作,當然了這是另外一個問題),我在hibernate官網找到了答案: https://docs.jboss.org/hibernate/orm/6.4/usergu

hibernate , jpa , spring-data-jpa

江南一點雨 - 什麼是 JWT?它是如何工作的?

鬆哥最近輔導了幾個小夥伴秋招,有小夥伴在面小紅書時遇到這個問題,這個問題想回答全面還是有些挑戰,鬆哥結合之前的一篇舊文和大夥一起來聊聊。 一 無狀態登錄 1.1 什麼是有狀態 有狀態服務,即服務端需要記錄每次會話的客户端信息,從而識別客户端身份,根據用户身份進行請求的處理,典型的設計如 Tomcat 中的 Session。例如登錄:用户登錄後,我們把用户的信息保存在服務端 session 中,並且

JAVA , Jwt

Java架構師 - 騰訊架構師極力推薦:Java多線程與Socket實戰微服務框架

在這個技術不斷更新的年代,跟不上時代變化的速度就會被刷掉,特別是咱們程序員這一羣體,技術不斷更新的同時也要同時進步,不然長江後浪推前浪,前浪...... 一個程序員從一個什麼都不懂的小白在學到有一定的Java基礎的時候肯定是要學習更多的技術充實自己,甚至還要往架構師方向靠。但是一個優秀的架構師必須要有紮實的編程功底和豐富的理論知識,不光要能完成架構設計,更要有能力將設計轉換為實際的產品。不會寫代碼

socket , 微服務 , 多線程 , JAVA , 程序員

wx690f565d7bc78 - java程序員自測標準

一、 Java 基礎 Java 語言特性: JVM 與內存模型: 理解 JVM 架構(堆、棧、方法區等)、垃圾回收機制(G1、ZGC)、Java 內存模型(JMM)以及 volatile、synchronized 的內存語義。 面向對象 (OOP): 熟練掌握類、對象、繼承、多態、封裝。理解抽象類與接口的區別,以及何時使用它們。

MySQL , API , 緩存 , 數據庫 , JAVA

呀哈哈kk - 【詳解】Python獲取系統性能信息

Python獲取系統性能信息 在開發和維護應用程序的過程中,瞭解系統的性能狀態是至關重要的。這不僅可以幫助我們優化程序的運行效率,還可以及時發現並解決潛在的問題。Python 作為一種強大的編程語言,提供了多種方式來獲取系統的性能信息。本文將介紹如何使用 psutil 庫來獲取包括CPU、內存、磁盤和網絡在內的系統性能數據。 安裝 psutil psutil(P

sed , 後端開發 , 磁盤分區 , JAVA , 網絡接口

清醒的人最荒唐 - SpringBoot實現自定義路由覆蓋

背景 公司最近有一個項目二期需要對一些功能進行改造,涉及部分框架內置業務接口個性化定製,兼容老接口功能並且增加一部分新的數據返回,由於前端調用這些接口分佈較多且較為零碎,修改測試成本較大,所以打算在框架層面提供路由覆蓋功能,加快項目進度減少無技術含量的修改帶來的系統風險 設計 提供自定義註解指定需要覆蓋的路由及新路由地址 系統啓動時掃描所有註解

系統啓動 , List , 自定義 , 後端開發 , JAVA

mb61c46a7ab1eee - Java前綴和算法題目練習 - 實踐

前綴和 前綴和 二維前綴和 尋找數組的中心下標 除自身以外數組的乘積 和為k的子數組 和可被K整除的子數組 連續數組 矩陣區域和 前綴和 題目解析:在一個數組中查詢起對應區間的和,會查詢多次 算法思想:暴力解法:每次查詢都進行一次遍歷,時間複雜度O(

子數組 , 數組 , 前綴和 , 後端開發 , Python

資深程序設計 - 基於python的高校後勤報修系統

1、研究背景 隨着高校規模的不斷擴大,後勤管理工作變得日益繁雜。傳統的後勤報修方式主要依賴人工操作,例如學生髮現設施設備故障後,需通過口頭報告或填寫紙質報修單的形式提交申請,維修人員則根據人工分配的任務進行維修。這種模式存在諸多弊端,如信息傳遞效率低下,容易出現信息丟失、延誤等情況,且難以對維修流程進行有效跟蹤和管理。在當今數字化時代,高校急需藉助信息技術提升後勤管理效率,

yyds乾貨盤點 , MySQL , Vue , 後端開發 , JAVA , Web

g天命風流 - 併發編程之變量的線程安全分析的詳細解析

4.4 變量的線程安全分析 成員變量和靜態變量是否線程安全? 如果它們沒有共享,則線程安全 如果它們被共享了,根據它們的狀態是否能夠改變,又分兩種情況 如果只有讀操作,則線程安全 如果有讀寫操作,則這段代碼是臨界區,需要考慮線程安全 局部變量是否線程安全? 局部變量是線程安全的 但局部變量引用的對象則未必 如果該對象沒有逃離方法的作用訪問,它是

d3 , 線程安全 , JAVA , 前端開發 , Javascript

Turbo_K - ThreadLocal有什麼缺點?

ThreadLocal 是 Java 中一個用於為每個線程提供獨立變量副本的類,它允許每個線程都能獨立地訪問和修改變量,避免了多線程間的競爭和同步問題。它是通過在每個線程中維護一個 線程局部變量 來實現的,通常用於線程間的數據隔離。 然而,ThreadLocal 並不是完美的,它有一些缺點和潛在的問題,特別是在多線程和資源管理方面。以下是 ThreadLocal 的一些主要

線程池 , 後端開發 , 多線程 , JAVA , 解決方案