收藏 / 列表

軟件求生 - 深夜調Bug:那次我被@OneToMany坑到懷疑人生

大家好,我是小米,一個31歲的Java後端開發者。 我發現程序員這行啊,最容易讓人“精神內耗”的不是加班、不是需求改動,而是——被註解支配的恐懼。 有一天,我在項目裏寫了一個看似普通的實體類映射,然後一運行,控制枱瞬間爆紅: com.fasterxml.jackson.databind.JsonMappingException: Infinit

Spring Boot , yyds乾貨盤點 , 遞歸 , 外鍵 , 後端開發 , jpa

老污的貓 - Java 二分法查詢

public static void main(String[] args) { Integer target = 7; // 初始化數據 ListInteger data = Arrays.asList(0, 1, 3, 5, 7, 9, 2, 4, 6, 8, 10); // 排序 Collections.sort(data); // 輸出

JAVA

大廠碼農老A - CR被批“寫得像坨屎”,我三句話讓他當場閉嘴

這坨屎山,我接了 大家好,我是老A。 我想很多程序員有過這種經歷,新接手一個項目,打開工程一看,妥妥的一大坨🤦,內心OS:好嘛,又要“屎山雕花”了。。。 我這兩年在做電商業務,所以業務上經常會搞大促,3天一小促,5天一大促,作為技術早就習慣了這種研發節奏(倒排)。今年6月是我們業務年中的一次大型大促,所以5月份的需求爆炸多,基本都是倒排,業務天天拿着大喇叭在我們屁股後喊📢:這個需求不做就

segmentfault , springboot , JAVA , 程序員 , 後端

悲傷的鴨蛋 - dependencies、dependencyManagement區別

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

maven , dependencies , dependency-management

打盹的猴子 - Java 設計模式:裝飾者模式(Decorator Pattern)

一、模式定義 裝飾者模式屬於結構型設計模式,允許通過動態包裝對象的方式為對象添加新功能,提供比繼承更靈活的擴展方式。該模式通過組合替代繼承,遵循開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Component(組件接口) 定義被裝飾對象的公共接口 ConcreteComponent(具體組件) 實現基礎功能的具體類 Dec

裝飾者模式 , 設計模式 , JAVA

vivo互聯網技術 - 一次基於AST的大規模代碼遷移實踐

作者:來自 vivo 互聯網大前端團隊- Wei Xing 在研發項目過程中,我們經常會遇到技術架構迭代更新的需求,通過技術的迭代更新,讓項目從新的技術特性中受益,但由於很多新的技術迭代版本並不能完全向下兼容,包含了很多非兼容性的改變(Breaking Changes),因此我們需要設計一款工具,幫助我們完成大規模代碼自動遷移問題。本文簡單闡述了基於 AST 的代碼遷移概念和大致流程,並通過代碼案

ast , 代碼遷移 , 抽象語法樹 , postcss , Javascript

牛肉燒烤屋 - TCP 真的存在“粘包”問題嗎?

引言 許多開發者都曾面對過這樣一個的問題:明明分別調用兩次send()發送了"Hello"和"World",接收方卻可能在一個recv()調用中讀到完整的"HelloWorld";或是發送了一個完整的 JSON 對象,接收端卻需要多次讀取才能拼湊出完整數據。這種現象被中文技術社區廣泛稱為“TCP 粘包” 然而,若我們深入 TCP 協議的設計本質,會發現一個令人困惑的矛盾——RFC 文檔中從未定義過

tcp , 計算機網絡 , 後端

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

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

框架學習 , 協程 , rpc , JAVA

王中陽講編程 - 某訊一面,有點難度

今天分享的是訓練營的朋友在某訊外包的面經,他在面完後跟我説:數據一致性策略好久沒問,有點忘了,所以這一塊答的不太好。 我一直都會和大家強調複習的重要性,尤其是這種常見的問題。看看下面的問題你都能答得上來嗎? 基礎部分 - MYSQL和Redis 一、MySQL索引分類 普通索引(INDEX) 這是最基本的索引類型,它沒有任何限制。它可以創建在任何數據類型的列上,主要目的是加

緩存 , 數據庫 , 後端

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

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

源碼 , JAVA , juc , 併發編程

Awbeci - Next.js 14集成next-auth(v5)和redux-toolkit最佳實踐

前言 自從next.js14發佈之後,app router變成了官網主推的架構區別於pages router的傳統架構,app router更適合最新的react,於是自己動手把next-auth、redux-toolkit、ant-design、tailwindcss也一同集成進來,分享給大家,如果有錯誤之處歡迎大家指正。 操作 1、創建項目 使用下面命令創建項目,並且選擇tailwind cs

next-auth , redux , next.js

lindsay_bubble - Leetcode 46&47_Permutations_全排列

一、不重複全排列 給定一個不含重複數字的數組 nums ,返回其 所有可能的全排列 。你可以 按任意順序 返回答案。 https://leetcode.cn/problems/permutations/description/ 1、dfs + boolean[] 通過boolean[]記錄 public ListListInteger permute(int[] nums

leetcode , 排列 , JAVA , 回溯法

wasdquiop - Linux服務器ARM架構安裝Mysql(aarch64)

一、卸載舊版本 查詢是否存在舊版本 rpm -qa | grep mysql rpm -qa | grep mariadb 如果存在,挨個刪除已有版本: yum -y remove 版本 查看etc/目錄下是否存在my.cnf文件 ls etc/my.cnf # 刪除 rm my.cnf 卸載MySQL後殘留數據保存路徑 find / -name mysql # 刪除 rm -rf 查找的路徑名

MySQL , arm64 , arm , centos7 , Linux

我不是碼農 - spring使用@Async註解導致循環依賴問題異常的排查

因為我用到了@async來實現異步操作,在本地跑的時候一直沒有報錯,可是當我打包到服務器啓動的時候卻報了一個BeanCurrentlyInCreationException Bean with name 'xxx' has been injected into other beans [xxx2] in its raw version as part of a circular reference

spring , async , aop , springboot , JAVA

江南一點雨 - 手把手教小夥伴們使用 Nginx 部署 TienChin 項目!

今天我就來手把手教小夥伴們部署 TienChin 項目,一起把這個項目跑起來,看看到底是個什麼樣的項目。 小夥伴們知道,對於這種前後端分離的項目,我們在實際部署的時候,可以按照前後端分離的方式來部署,也可以按照前後端不分的方式來部署。接下來兩種不同的部署方式我都和小夥伴們來分享一下。 1. 前後端分離部署 1.1 部署架構圖 前後端分離部署的話,我們一般是需要一個 Nginx 服務器,我先畫一個簡

前後端分離 , Nginx

Java架構師 - IO:阻塞和非阻塞、同步和異步

阻塞和非阻塞 阻塞的時候線程會被掛起 阻塞: 當數據還沒準備好時,調用了阻塞的方法,則線程會被掛起,會讓出CPU時間片,此時是無法處理過來的請求,需要等待其他線程來進行喚醒,該線程才能進行後續操作或者處理其他請求。 非阻塞: 意味着,當數據還沒準備好的時候,即便我調用了阻塞方法,該線程也不會被掛起,後續的請求也能夠被處理。 同步 同步和異步跟串行和並行非常形似。 假設在一個場景下:完成一個大任務需

阻塞 , JAVA , io , 異步 , 後端

wx690f565d7bc78 - java代碼可接受感應信號

一、場景 1:接收硬件傳感器信號(最常用) 如果感應信號來自硬件設備(如温度傳感器、紅外感應器、運動傳感器等),通常通過以下方式與 Java 程序通信: 串口通信(RS-232/USB):傳感器通過串口線或 USB 轉串口連接電腦,Java 用RXTX或jSerialComm庫讀取串口數據。 USB 直接通信:部分傳感器支持 USB HID 協議,可

System , 串口 , MySQL , 數據庫 , JAVA

呀哈哈kk - 【詳解】Kali安裝BCM43142802.11b/g/nLinux驅動

Kali安裝BCM43142802.11b/g/n Linux驅動 在使用Kali Linux時,有時會遇到無線網卡驅動不兼容的問題。本文將詳細介紹如何在Kali Linux上安裝Broadcom BCM43142 802.11b/g/n的Linux驅動。 環境準備 操作系統:Kali Linux 2023.1 硬件:帶有BCM43142無線網

驅動程序 , 加載 , 無線網卡 , 後端開發 , JAVA

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

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

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

mb61c46a7ab1eee - 大屏自適應組件v-scale-screen - 指南

問題:大屏分辨率適配繁多,目前我認為最簡單且問題最少的的方案就是使用v-scale-screen插件,無需考慮單位轉換,position定位也正常使用。 1. 安裝 npm install v-scale-screen -save 2. vue3中使用 script import VScaleScreen from 'v-sca

app , 分辨率適配 , Css , 前端開發 , HTML

資深程序設計 - 基於微信小程序的民宿預定系統

1、研究背景 隨着互聯網技術的飛速發展以及移動設備的普及,人們的生活方式和消費習慣發生了深刻變化。在旅遊出行領域,微信小程序作為一種新興的應用形式,憑藉其便捷性、無需下載安裝的特點,迅速成為用户獲取服務的重要渠道。民宿作為一種個性化、多樣化的住宿選擇,受到越來越多遊客的青睞。它不僅提供了一種不同於傳統酒店的住宿體驗,更能讓遊客深入當地生活,感受獨特文化氛圍。民宿預訂過程中仍

微信小程序 , yyds乾貨盤點 , MySQL , 管理系統 , 後端開發 , JAVA

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

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

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

Turbo_K - mysql的查詢優化器如何選擇執行計劃

MySQL 查詢優化器(Query Optimizer)負責決定如何執行一個查詢,它通過選擇最優的 執行計劃 來實現查詢的高效執行。查詢優化器的目標是根據查詢的複雜性、表的大小、索引的可用性等因素選擇最優的執行路徑。下面將詳細介紹 MySQL 查詢優化器是如何選擇執行計劃的。 1. 執行計劃概述 執行計劃 是 MySQL 查詢優化器選擇的一系列操作步驟,指明如何掃描表

MySQL , 執行計劃 , 查詢優化 , 後端開發 , JAVA

自由的瘋 - 《分佈式 + 國產數據庫 + Docker:技術選型避坑指南》(十三)

一、為什麼需要自定義限流?基礎限流的侷限性 在第六篇基礎限流中,我們配置了 “GET:/user/get/{id}接口 QPS=20” 的規則,但實際業務場景存在更多精細化需求: 場景 1:限制單個用户(如 user_id=100)每秒最多調用 3 次訂單創建接口,避免惡意刷單; 場景 2:限制單個 IP(如 192.168.1.10)每秒最多訪問

限流 , yyds乾貨盤點 , ip , 自定義 , 後端開發 , JAVA