收藏 / 列表

老污的貓 - 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 真的存在“粘包”問題嗎?

引言 許多開發者都曾面對過這樣一個的問題:明明分別調用兩次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 - SpringCloud-解決WebFlux異步線程無法獲取ThreadLocal中的用户信息

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

webflux , springcloud , springboot , JAVA

lindsay_bubble - Leetcode 85_maximal_rectangle_最大矩形

一、棧 承接Leetcode 84,柱狀圖算最大矩形面積,把該題入參改為柱狀圖高度即可 PS:這版本手搓int[]做棧和直接用ArrayDeque做棧,結果僅差2ms;但題84相差近15ms。 public int maximalRectangle(char[][] matrix) { if (matrix.length == 0) {

leetcode , , JAVA

wasdquiop - centos7 安裝 nginx

centos7 安裝 nginx 安裝包 鏈接: https://pan.baidu.com/s/1kpAYYX_yy-vXX-1vsCPhoA 提取碼: qrtb 上傳 新創建usr/local/nginx文件夾,放到文件夾下 解壓 tar -zxvf nginx-1.9.9.tar.gz 安裝編譯環境 安裝gcc,源碼編譯依賴 gcc 環境 yum -y install gcc-c+

centos7 , Linux , JAVA , Nginx

我不是碼農 - 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

Java陳序員 - 一款極簡的聊天應用

大家好,我是 Java陳序員。 今天,給大家介紹一個開源的聊天應用程序,支持PC端和移動端。 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 HasChat —— 一個基於 Vue3 + Socket.io 的聊天應用,同時支持PC端和移動端。 功能特性: 技術棧: PC 網頁版前端:Vue3 + Vite + TypeS

express , vue.js , github , 數據庫

呀哈哈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

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

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

權限控制 , 權限 , JAVA

journey - Spring ThreadPoolTaskExecutor解説

1、ThreadPoolTaskExecutor @Async示例 @Async 註解的作用 異步執行方法: 被 @Async 註解標記的方法會在一個獨立的線程中執行,而不是在調用者的線程中。這意味着調用方法時,調用者線程會立即返回,並且方法的實際執行會在後台進行 提高併發性和性能: 通過異步執行耗時的操作,可以提高應用程序的響應速度和吞吐量。例如,在Web應用中,可以異

async , 線程池 , springboot , JAVA

mb61c46a7ab1eee - 深入解析:自定義網絡協議與序列化/反序列化

自定義網絡協議與序列化/反序列化 如果你做過網絡編程,可能會遇到這樣的問題:用TCP發了一個“1+1”的計算請求,對方卻只收到了“1”;或者一次收到了“1+12+3”這種拼接的內容——這時候怎麼判斷哪個是完整的請求?又怎麼把這些字符串解析成能計算的操作數和運算符?這篇文章就從TCP的“天生缺陷”説起,帶你搞懂自定義協議的必要性、序列化與反序列化的核心邏輯,最後通過一個網絡計

oracle , 序列化 , 字符串 , 數據庫 , 反序列化

CodePulse代碼脈搏 - 實時代碼分析與智能指導

基於Python開發一個智能編程學習助手,專注於代碼分析和實時指導。 核心功能設計 # ai_coding_tutor.py import ast import inspect from typing import Dict, List, Optional from dataclasses import dataclass from pathlib impo

後端開發 , JAVA , HTML , Json , Python

sangwu - 68. 文本左右對齊

68. 文本左右對齊 給定一個單詞數組words和一個長度maxWidth,重新排版單詞,使其成為每行恰好有maxWidth個字符,且左右兩端對齊的文本。 你應該使用 “貪心算法” 來放置給定的單詞;也就是説,儘可能多地往每行中放置單詞。必要時可用空格' '填充,使得每行恰好有maxWidth個字符。 要求儘可能均勻分配單詞間的空格數量。如果某一行單詞間的空格不

左對齊 , yyds乾貨盤點 , 字符串 , 後端開發 , 兩端對齊 , JAVA

虎斑嘟嘟 - 零知識證明與深度學習:打造可驗證的AI推理新時代

零知識證明與深度學習:打造可驗證的AI推理新時代 在醫療、金融和自動駕駛等關鍵領域,人工智能系統正日益成為決策的核心。然而,這些“黑箱”模型如何讓人信任?當AI告訴你不應該批准貸款或患有癌症時,你如何知道這個決策是基於正確的推理,而不是被惡意篡改或包含了偏見? 傳統方法要求完全透明公開模型參數和輸入數據,但這在保護知識產權和用户隱私方面面臨巨大挑戰。 零知識證明

yyds乾貨盤點 , 數據 , 後端開發 , JAVA , ci , 零知識證明

Turbo_K - ThreadLocal有什麼缺點?

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

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

大丸子 - 使用 Python 將 PowerPoint 轉換為 HTML 網頁

在工作中,我們經常需要將 PowerPoint 演示文稿分享給同事或者嵌入到網站中。然而,如果直接發送 PPT 文件,不僅需要接收方安裝 PowerPoint,還可能存在兼容性問題。將演示文稿導出為 HTML 網頁是一種很好的解決方案,它可以直接在瀏覽器中查看,既方便分享,又便於在網站或培訓平台上展示。 手動將 PPT 導出為 HTML 文件可能比較繁瑣,尤其是需要保持原有排版和樣式時。藉助 Fr

ppt , powerpoint , 轉換 , HTML , Python

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

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

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

小風箏 - SpringBoot 使用 Sa-Token 完成路由攔截鑑權

一、需求分析 在前文,我們詳細的講述了在 Sa-Token 如何使用註解進行權限認證,註解鑑權雖然方便,卻並不適合所有鑑權場景。 假設有如下需求:項目中所有接口均需要登錄認證校驗,只有 “登錄接口” 本身對外開放。 如果我們對項目所有接口都加上 @SaCheckLogin 註解,會顯得非常冗餘且沒有必要,在這個需求中我們真正需要的是一種基於路由攔截的鑑權模式,那麼在 Sa-Token 怎麼實現路由

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