收藏 / 列表

老污的貓 - Java 爬樓梯

題目 假設你正在爬樓梯。需要 n 階你才能到達樓頂。 每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢? 原題地址 解題 每一步只能走1階或2階,因此每一步可拆分為2個分支,f(n)=f(n-1)+f(n-2) 遞歸 public static int climbStairs(int n) { if (n == 1) { return

算法 , JAVA

大廠碼農老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

牛肉燒烤屋 - 詳解分佈式緩存不一致性的所有情況!除了分佈式緩存外,其它場景又是如何解決緩存一致性的呢?

[toc] 引言 持久化層和緩存層的一致性問題也通常被稱為「雙寫一致性問題」,“雙寫”意為數據既在數據庫中保存一份,也在緩存中保存一份。對於一致性來説,包含強一致性和弱一致性,強一致性保證寫入後立即可以讀取,弱一致性則不保證立即可以讀取寫入後的值,而是儘可能的保證在經過一定時間後可以讀取到,在弱一致性中應用最為廣泛的模型則是最終一致性模型,即保證在一定時間之後寫入和讀取達到一致的狀態。 我們一般會

redis , 緩存 , JAVA , 一致性

seazhan - 【Java多線程】斷點續傳 如何使用Java多線程下載網絡文件

如何使用Java多線程下載網絡文件,並實現斷點續傳 在現代網絡應用中,多線程下載是一種常見的技術,它可以顯著提高下載速度並提供更好的用户體驗。本篇文章將介紹如何使用Java實現多線程下載,並結合項目中的代碼作為示例進行講解。 1. 多線程下載的基本原理 多線程下載的基本思想是將一個文件分成多個部分,每個部分由一個線程獨立下載,最後將這些部分合併成完整的文件。這樣可以充分利用帶寬和計算資源,提高下載

多線程 , JAVA

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

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

緩存 , 數據庫 , 後端

字節幺零二四 - 算法典型例題:N皇后問題,五種解法,逐步優化(遞歸版)

本文將介紹N皇后問題的五種解法,包括樸素回溯法、對稱優化、標記優化、可用優化、位運算優化,對於每種解題思路,提供相應的遞歸版代碼實現,最後將對每種解法進行測試,橫向對比每種解法的求解時間。 題目描述 在 N×N 格的國際象棋上擺放 N 個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法? 回溯法 解題思路 回溯法採用深度有限的搜索策略遍歷問題的解空間樹,可

遞歸 , 算法 , 回溯法

Awbeci - Next.js-Cookie鑑權+續期+退出登錄

前言 之前寫過關於next.js鑑權操作cookie的文章,Next.js-cookie鑑權+續期1和Next.js-cookie鑑權+續期2,最近chatgpt非常火,於是我問它next.js鑑權最佳實踐,下面是它的回答: 設置合理的 cookie 有效期:合理的 cookie 有效期應該根據網站的特點來確定,通常建議將其設置為一定時間內(如 30 分鐘)。 定時刷新 cookie

next.js , cookie

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 - 常用正則表達式整理

常用正則表達式(持續更新) 校驗數字 1 數字:^[0-9]*$ 或者 ^\d$ 2 n位數字:^\d{n}$ 3 正整數:^(0?|[1-9]\d*)$ 4 最多兩位小數:^(0?|[1-9]\d*)(.\d{1,2})?$ 校驗字符 1 漢字:^[\u4e00-\u9fa5]+$ 2 英文和數字:^[A-Za-z0-9]+$

字符串 , 正則表達式 , 程序員

witt - SseEmitter返回data被雙引號包裹的問題排查

一、背景 最近做接口的性能改造,大概背景如下: 舊: 1.前端每秒輪詢後端接口,接口返回數據狀態,前端用狀態做判斷,變更頁面交互。 2.前端固定調用後端接口,接口阻塞100秒,等待後端隨時返回結果,100秒到達後無結果,直接失敗。 新: 改為ServerSentEvent以text-event-stream固定時間窗口由後端返回處理進度。 二、簡單對比 1.後端服務壓力大。

spring , servlet , spring-mvc , JAVA , sse

Java陳序員 - 完全開源!一款基於 SpringBoot + Vue 構建的社區平台!

大家好,我是 Java陳序員。 在如今互聯網時代,擁有一個個人專屬的社區平台,用於技術交流或者興趣分享圈子,是一件很酷的事~ 今天,給大家介紹一款基於 SpringBoot + Vue 構建的社區平台,幫助你快速構建個人社區平台! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 OpenIsle —— 一個使用 SpringBo

vue.js , github , MySQL , springboot

jacheut - JAVA IO流簡介

1. IO流概述 IO,即in和out,也就是輸入和輸出,指應用程序和外部設備之間的數據傳遞,常見的外部設備包括文件、管道、網絡連接。 流(Stream),是一個抽象的概念,是指一連串的數據(字符或字節),是以先進先出的方式發送信息的通道。 關於流的特性有下面幾點: 1.先進先出:最先寫入輸出流的數據最先被輸入流讀取到。 2.順序存取:可以一個接一個地往流中寫入一串字節,讀出時也將按寫

JAVA , io

福 - BlockingQueue - 基於TransferStack的SynchronousQueue

ThreadPoolExecutor以BlockingQueue存儲待執行任務,包括SynchronousQueue、LinkedBlockingQueue和ArrayBlockingQueue,今天的目的是源碼角度深入研究SynchronousQueue。 之後計劃是繼續研究LinkedBlockingQueue和ArrayBlockingQueue,搬開所有絆腳石之後再開始線程池。 基本概念#

多線程 , JAVA , 阻塞隊列 , 隊列

點墨 - JavaScript計算字符串實際長度

計算字符串的實際長度,雙字節字符(包括漢字在內)長度計2,ASCII字符計1 方法1:使用match: export function getByteLenMatch(data) { let result = 0; for (let s of data) { result += s.match(/[^\\x00-\\xff]/ig) == null ? 1 : 2; } r

長度 , string , Javascript

程序員波特 - Java中鎖的解決方案

前言 在上一篇文章中,介紹了什麼是鎖,以及鎖的使用場景,本文繼續給大家繼續做深入的介紹,介紹JAVA為我們提供的不同種類的鎖。 JAVA為我們提供了種類豐富的鎖,每種鎖都有不同的特性,鎖的使用場景也各不相同。由於篇幅有限,在這裏只給大家介紹比較常用的幾種鎖。我會通過鎖的定義,核心代碼剖析,以及使用場景來給大家介紹JAVA中主流的幾種鎖。 樂觀鎖 與 悲觀鎖 樂觀鎖與悲觀鎖應該是每個開發人員最先接觸

lock , , JAVA , synchronized

尼古拉斯舞王 - 文心 5.0 來了,百度大模型的破局之戰

2025 年 11 月 8 日,百度官方博客發佈消息,ERNIE 5.0 Preview 在 LMArena 文本排行榜中拿到了全球第二的成績。這個成績排在 Gemini 2.5 Pro 之後,和 GPT-5-High 並列,超過了 DeepSeek-R1 和 Qwen3-Max。 LMArena 是個什麼榜單?它不是實驗室裏跑出來的基準測試,而是真實用户投票選出來的。用户

後端開發 , JAVA , 開發者 , 模態 , 百度

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

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

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

湯太鹹 - 面向對象設計原則

開閉原則(Open Closed Principle,OCP):當應用的需求改變時,在不修改軟件實體的源代碼或者二進制代碼的前提下,可以擴展模塊的功能,使其滿足新的需求。 里氏替換原則(Liskov Substitution Principle,LSP):子類可以擴展父類的功能,但不能改變父類原有的功能。也就是説:子類繼承父類時,除添加新的方法完成新增功能外,儘量不要重寫父類的方法。

JAVA , 面向對象設計模式

華為雲開發者聯盟 - 聊聊LiteOS事件模塊的結構體、初始化及常用操作

摘要:本文通過分析LiteOS事件模塊的源碼,深入掌握事件的使用。 本文分享自華為雲社區《LiteOS內核源碼分析系列九 事件Event》,原文作者:zhushy 。 事件(Event)是一種任務間通信的機制,可用於任務間的同步。多任務環境下,任務之間往往需要同步操作,一個等待即是一個同步。事件可以提供一對多、多對多的同步操作。本文通過分析LiteOS事件模塊的源碼,深入掌握事件的使用。 L

物聯網 , 華為雲 , 事件 , 結構體

mob64ca13fe62db - 【Python】永久使用國內pip鏡像源

Python pip使用簡介和國內鏡像下載 什麼是pip pip 是 Python 的官方包管理工具,用於安裝和管理第三方庫(也稱為“包”或“模塊”)。自 Python 3.4 起,pip 默認隨 Python解釋器安裝,通過命令行使用 pip 命令進行包的安裝、卸載、升級等操作。 通過 pip --version 檢查pip是否安裝。 pip

鏡像源 , 後端開發 , 包名 , Python

mb61c46a7ab1eee - 實用指南:你可以通過以下步驟找到並打開 Visual Studio 開發者命令提示符:

你可以通過以下步驟找到並打開 Visual Studio 開發者命令提示符: 1. 通過開始菜單查找 打開 開始菜單(點擊屏幕左下角的 Windows 圖標)。 在搜索框中輸入 Developer Command Prompt。 你應該看到以下幾種選項(具體取決於你的 Visual Studio 安裝版本): Deve

命令提示符 , Css , 開發者 , Visual , 前端開發 , HTML

bigsai - 棧和括號匹配問題,一文搞懂

什麼是棧 棧在我們日常編碼中遇到的非常多,很多人對棧的接觸可能僅僅侷限在 遞歸使用的棧 和 StackOverflowException,棧是一種後進先出的數據結構(可以想象生化金字塔的牢房和生化角鬥場的狗洞)。 棧(stack)是一種運算受限的線性數據結構,它具有以下特點: 1. 運算受限: 棧限定僅在表尾進行插入和刪除操作,這一端被稱為棧頂,而另一端稱為棧底。這限制了對棧的操作,只能按照後進

數據結構 , , JAVA , 數據結構與算法 , 後端