收藏 / 列表

老污的貓 - 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 - 我帶的外包兄弟放棄大廠轉正,薪資翻倍入職字節

大家好,我是老A 國慶節的時候,收到一位粉絲的私信求助。一來一回聊了半天,我發現了一個很多技術兄弟的通病——我們稱之為「收藏夾式努力​」。水文看不上,只想讓大佬推薦技術寶典,一旦拿到手,焦慮感削弱,寶典就在收藏夾裏吃灰,下了班照樣峽谷開黑。當你想督促他深入研究時,他又會用「他是大佬,我不是,我做不到」來給自己設限,最終陷入「持續焦慮,持續躺平」的惡性循環。 這種惰性,是人之常情。但人和人之間

觀點 , JAVA , 程序員 , 後端 , 前端

悲傷的鴨蛋 - 會話技術、過濾器、攔截器

登錄校驗:判斷用户是否登錄,從而決定是否讓其執行相關操作。(已登錄則可執行,未登錄則不可,必須登錄後才能執行) 具體操作步驟: 1、記錄用户已經成功登錄的標記(會話技術)會話:指的就是瀏覽器與服務器之間的一次連接。在一次會話當中,是可以包含多次請求和響應的(瀏覽器不能關閉、服務器不能斷開)會話跟蹤:服務器識別多次請求是否來自於同一瀏覽器,以實現在同一次會話的多次請求間共享數據。此技術一

filter , JAVA , token , Jwt

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

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

設計模式 , JAVA , 策略模式

牛肉燒烤屋 - 超時時間應該設置多長?長尾請求和重試風暴又該如何解決?打造高效穩定的網絡請求!

超時時間 概念 超時時間指系統在等待某個操作響應時設定的最大容忍時間閾值。當操作未在指定時間內完成,系統將主動終止等待並觸發預設處理邏輯 超時可以看做是一種降級手段。因為假設服務永遠能正常運行,我們並不需要超時時間,來保證服務的可用性和穩定性 常見需要依賴超時時間的場景 網絡層:TCP 協議的 connect timeout(Linux 默認 120 秒)、HTTP 請求的 socket ti

微服務 , rpc , 高可用 , 計算機網絡 , 後端

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

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

框架學習 , 協程 , rpc , JAVA

王中陽講編程 - 微服務門檻高到勸退?其實 90% 的人都踩錯了第一步

你是否也曾陷入這樣的循環:對着《微服務架構設計模式》啃了半年理論,卻連一個完整的服務拆分案例都寫不出來;GitHub上star過幾十個微服務開源項目,下載後看着幾百個模塊的代碼樹,連啓動命令都找不到;好不容易搭起一套框架,一到高併發場景就各種報錯,排查三天發現是服務註冊中心的配置沒配對…… 微服務的門檻,從來不在知道名詞,而在落地能力。今天結合幾個主流開源項目的實戰體驗,聊聊從看懂代碼到做出能用的

微服務 , 後端

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

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

遞歸 , 算法 , 回溯法

Awbeci - SpringCloud-SpringSecurity+Oauth2:搭建資源服務

前言 之前寫過使用springsecurity搭建認證服務SpringSecurity+Oauth2:密碼授權模式獲取Token(MongoDB+JWT),這篇則寫關於如何搭建資源服務,只有驗證通過的token才能訪問。 操作 1、配置Pom.xml引用spring-cloud-security和oauth2的jar包 2、配置主類@EnableResourceServer註解,開啓資源服務

oauth2.0 , springsecurity

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

Java陳序員 - 替代 JIRA!一款功能強大的開源項目管理工具!

大家好,我是 Java陳序員。 在團隊開發項目的時候,常常會使用到項目管理工具,方便跟蹤項目進度、團隊協作以及文檔整理等。 今天,給大家介紹一款功能強大的開源項目管理工具,可替代 JIRA! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 openproject —— 一個功能強大的開源項目管理軟件,適用於團隊協作、敏捷開發和項

ruby-on-rails , angular , MySQL , postgresql , Docker

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

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

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

wayn - 終於有篇文章把後管權限系統設計講清楚了

在常用的後台管理系統中,通常都會有權限系統設計,以用於給對應人員分配不同權限,控制其對後管系統中的某些菜單、按鈕以及列表數據的可見性。 本文將用 waynboot-mall 項目舉例,給大家介紹常見後管系統的權限控制該如何設計。大綱如下, 權限模型 要理解權限控制,我們需要先了解什麼是權限模型。 權限模型是指用於描述用户、角色和權限之間關係的一種抽象模型。不同的權限模型有不同的優缺點,適用於不

權限控制 , 權限 , JAVA

mob64ca13fe62db - (轉載)Spring異常處理@ExceptionHandler

@ExceptionHandler原理淺析 初始化 初始化 ExceptionHandlerExceptionResolver#exceptionHandlerAdviceCache 初始化方法:initExceptionHandlerAdviceCache() public static ListControllerAdviceBe

oracle , 優先級 , 初始化 , 數據庫 , JAVA

journey - 批量修改pom.xml中的groupId

1、需求 使用 shell 腳本批量修改 pom.xml 文件中的 groupId 可以通過 sed 命令來實現。下面是一個示例 shell 腳本,它會遞歸地查找當前目錄及其子目錄中的所有 pom.xml 文件,並將 groupId 從 org.apache.dolphinscheduler 修改為 com.datashark 2、腳本 #!/bin/bash # 定義舊的和新的 groupId

maven3 , shell

mb61c46a7ab1eee - FPGA學習篇——Verilog學習之分頻器的實現 - 教程

PS:目前手上仍然沒有板子,按照野火視頻的講解,目前我們只能做到前面六步(其實第一步設計規劃也是需要看板子的硬件的,但是現在沒有板子就完全與野火傳授的板子一致來看) 1 設計規劃及波形繪製 1.1分頻器的原理: 分頻器就是把輸入信號的頻率成倍數的降低後再進行輸出。 比如説4分頻器,就是把輸入信號頻率降低4倍再輸出,可以理解成輸入4

sed , 上升沿 , 前端開發 , ide , Javascript

CodePulse代碼脈搏 - 智能練習生成與進度追蹤

基於AI編程導師,添加智能練習生成和個性化學習路徑功能。 1. 智能練習生成器 # exercise_generator.py import random from typing import List, Dict from enum import Enum class Difficulty(Enum): BEGINNER = "beginner"

List , 後端開發 , JAVA , ci , Json

sangwu - 74. 搜索二維矩陣

74. 搜索二維矩陣 給你一個滿足下述兩條屬性的m x n整數矩陣: 每行中的整數從左到右按非嚴格遞增順序排列。 每行的第一個整數大於前一行的最後一個整數。 給你一個整數target,如果target在矩陣中,返回true;否則,返回false。 示例 1: 輸入:matrix = [[1,3,5,

yyds乾貨盤點 , 搜索 , 二維 , Math , 後端開發 , JAVA

虎斑嘟嘟 - 多模態對齊的表示學習:統一對比散度框架詳解

多模態對齊的表示學習:統一對比散度框架詳解 1. 引言:多模態對齊的核心挑戰 多模態表示學習作為人工智能領域的前沿方向,旨在使機器能夠像人類一樣理解和處理文本、圖像、音頻等不同模態的信息。其核心挑戰在於如何構建一個共享的語義空間,使得異構數據在這個空間中可以相互對齊和理解。 不同模態數據之間存在三大根本矛盾:符號系統的異構性(自然語言基於離散符號系統,而視覺、聽

yyds乾貨盤點 , 錨點 , 相似度 , 後端開發 , JAVA , 模態

Turbo_K - ThreadLocal有什麼缺點?

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

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

自由的瘋 - 《單元測試與Mock:保證代碼質量(十四)》

單元測試是確保代碼質量的核心手段,通過隔離測試目標代碼(System Under Test, SUT),驗證其邏輯正確性。結合Mock框架(如Moq)可以模擬外部依賴,使測試更可控、更高效。 1. xUnit/NUnit基礎:單元測試框架 1.1 xUnit與NUnit對比

List , Test , Stack , yyds乾貨盤點 , c++ , 後端開發 , c

小風箏 - 對敏感操作的二次認證 —— 詳解 Sa-Token 二級認證

一、需求分析 在某些敏感操作下,我們需要對已登錄的會話進行二次驗證。 比如代碼託管平台的倉庫刪除操作,儘管我們已經登錄了賬號,當我們點擊 [刪除] 按鈕時,還是需要再次輸入一遍密碼,這麼做主要為了兩點: 保證操作者是當前賬號本人。 增加操作步驟,防止誤刪除重要數據。 這就是我們本篇要講的 —— 二級認證,即:在已登錄會話的基礎上,進行再次驗證,提高會話的安全性。 Sa-Token 是一

sa-token , 權限控制 , spring , springboot , JAVA

wx661607c93692e - Java 圖片縮略圖工具類

一、核心需求分析 我們希望工具類支持兩種主流模式: 模式 1:等比縮放(Fit) 在不超過目標寬高的前提下,按原圖比例縮放,空白處留白或透明。 適用:商品圖、文章封面預覽。 模式 2:中心裁剪(Crop) 先等比縮放使圖像覆蓋整個目標區域,再從中心裁剪出指定尺寸。 適用:用户頭像

縮放 , 後端開發 , JAVA , Image