收藏 / 列表

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

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

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

老污的貓 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and……

問題描述 執行SQL聯表查詢,原始報錯信息 (1267, "Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '='") 這是由於不同表使用了不一致的字符集導致的衝突 解決方案 修改表或字段的格式至同一結構 使用轉格式命令單獨執行本次S

MySQL

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

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

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

悲傷的鴨蛋 - dependencies、dependencyManagement區別

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

maven , dependencies , dependency-management

打盹的猴子 - 策略模式(Strategy Pattern)深度解析教程

一、模式定義 策略模式屬於行為型設計模式,通過定義算法族並將其封裝為獨立的策略類,使得算法可以動態切換且與使用它的客户端解耦。該模式通過組合替代繼承,符合開閉原則(對擴展開放,對修改關閉)。 二、核心角色 Strategy(策略接口) 定義所有支持的算法的公共接口 ConcreteStrategy(具體策略) 實現策略接口的具體算法

設計模式 , JAVA , 策略模式

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

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

im , websocket , MySQL , nosql , JAVA

牛肉燒烤屋 - 為什麼不應該在事務中嵌套發送 MQ 消息和 RPC 調用?

引言 或許你曾寫過這樣的代碼: @Transaction // 開啓事務 public void craeteOrder(Order order) { saveOrder(order); sendMQ(order); // 或者是發送 rpc } 在一個事務內,向 MySQL 寫入數據,接下來發送 MQ 或 RPC 調用。在大部分情況下,這樣寫好像沒什麼問題 但如果此時我們下游執行

MySQL , mq , JAVA , 事務 , 後端

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

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

框架學習 , 協程 , rpc , JAVA

王中陽講編程 - Eino 工具開發避坑指南:小白也能看懂的概念拆解 + 實操教程

一文吃透 Eino 工具的核心原理!從 BaseTool 接口、ToolInfo 説明書到 InferTool 實戰,手把手教你寫可運行的 PDF 解析、簡歷評分工具,附帶通用開發模板直接套用~ 這篇文章能讓你: 搞懂Eino工具的核心概念 掌握創建Eino工具的4種方式 拆解項目中工具的實現邏輯 從零寫出可運行的Eino工具 1. 核心概念通俗講(先懂原理再看代碼) Eino的「工具

人工智能 , 程序員

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

ReentrantLock 依賴關係如下圖所示 非公平鎖實現原理 ReentrantLock 默認採用非公平鎖。 // ReentrantLock public ReentrantLock() { sync = new NonfairSync(); } 加鎖流程 ReentrantLock 的 lock 方法通過同步器的 lock 方法實現。 // ReentrantLock publi

JAVA , 併發 , juc , 併發編程

Awbeci - Seaurl-分享一個雲上網址收藏網站

前言 最近網上發現一個強大的網址收藏網站,點擊這裏打開,分享給大家,希望大家會喜歡。 網址空間 "網址空間"是一個專業的在線平台,它允許用户分享他們在日常生活和工作中頻繁訪問的網站鏈接。此外,該平台還提供了社交功能,使用户能夠查看並探索他們的朋友們所添加的網站鏈接,從而增強信息共享和網絡資源的發現。 當你添加網址時候,它會自動帶出標題和描述,非常方便。 它還提供了快捷工具功能,上面列出

網址 , url

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 - 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 , 程序員

我不是碼農 - spring security oauth2.0 sso流程分析

現在我們系統使用的是spring security oauth2.0 sso單點登錄方案,偶爾出現會話失效,經過分析比對看了下日誌,出現會話失效時會出現一個警告, Could not fetch user details: class org.springframework.security.oauth2.client.resource.UserRedirectRequiredException,

oauth2.0 , spring , springsecurity , springboot , JAVA

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

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

JAVA , Jwt

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

清醒的人最荒唐 - ImportBeanDefinitionRegistrar與BeanDefinitionRegistryPostProcessor的區別

概述 如果想實現自定義註冊bean到spring容器中,常見的做法有兩種 @Import+ImportBeanDefinitionRegistrar BeanDefinitionRegistryPostProcessor BeanDefinitionRegistryPostProcessor與ImportBeanDefinitionRe

spring , 自定義 , 後端開發 , JAVA , ide

mb61c46a7ab1eee - 實用指南:電壓源和電流源學習理解

文章目錄 前言 一、什麼是電壓源 二、什麼是電流源 三、為什麼要分這兩種?它們分別是什麼用途? 1. 用途:電壓源 2. 用途:電流源 四、目前的主流的設計路線 4.1高精度低噪聲電壓源主流硬件設計開發路線 4.2高精度電流源目前的主流硬件設計開

電流源 , 硬件設計 , 高精度 , 前端開發 , Javascript

資深程序設計 - 基於python大數據的房價數據分析系統

1、研究背景 在當今數字化時代,房地產行業作為國民經濟的重要支柱產業,其數據量呈現出爆炸式增長。房價數據不僅涵蓋了房屋的基本屬性,如面積、户型、樓層等,還涉及地理位置、周邊配套設施、市場供需關係、宏觀經濟指標等眾多因素。這些海量且複雜的數據藴含着豐富的信息,對於政府制定房地產調控政策、企業進行市場決策以及購房者做出合理選擇都具有至關重要的價值。傳統的人工分析方法在處理如此龐

大數據 , yyds乾貨盤點 , 數據 , MySQL , 後端開發 , 房價分析 , Python

g天命風流 - 併發編程之Java 對象頭的詳細解析

Java 對象頭 以 32 位虛擬機為例 普通對象 |--------------------------------------------------------------| | Object Header (64 bits) | |------------------------------------|-------------------------|

word , 項目代碼 , JAVA , 前端開發 , Javascript

Turbo_K - 如何實現數據庫的不停服遷移?

數據庫不停服遷移 是指在不影響現有系統正常運行的情況下,進行數據庫的遷移操作。這對於保障系統的高可用性、減少停機時間以及提高業務連續性至關重要。以下是幾種常見的實現數據庫不停服遷移的方式和步驟。 1. 數據庫遷移的需求與挑戰 在進行數據庫遷移時,常見的挑戰包括: 業務不中斷:遷移過程中必須確保業務正常進行,避免影響客户或用户。 數據一致性:源數

數據同步 , 數據 , 數據庫 , 後端開發 , JAVA