收藏 / 列表

鹽焗代碼蝦 - 支付寶 v3 驗籤如何實現

上次給大家介紹了 支付寶 v3 自簽名如何實現 ,這次順便再把驗籤也寫一下。 為什麼要驗籤 説起為什麼要驗籤,如果要詳細一點解釋的話,可以寫很多很多...... 我們就簡單一點來解釋:驗籤可以證明接收到的信息是支付寶給我的,不是被人中途攔截篡改數據之後再發給我的。 支付寶的通知分為 「同步通知 」和 「異步通知 」: 「同步通知 」就是我們請求支付寶之後,支付寶返回的數據。 「異步通知 」

解密 , 支付寶 , JAVA , 後端

宇文成都 - 使用 Java 對 PDF 添加水印:提升文檔安全與版權保護

在當今數字化辦公環境中,PDF 文檔作為信息交流和存儲的重要載體,其安全性和版權保護變得尤為關鍵。企業常常需要對內部敏感文檔或對外發布的資料添加水印,以防止未經授權的使用、泄露或篡改。那麼,如何通過 Java 編程高效、靈活地實現 PDF 水印的添加呢? 本文將為您揭示這一問題的解決方案。我們將深入探討如何利用功能強大且易於集成的 Spire.PDF for Java 庫,為您的 PDF 文檔添加

pdf

崽崽233 - Java(day243):Java 中如何實現分佈式緩存?

大家好,我是不熬夜崽崽!大家如果覺得看了本文有幫助的話,麻煩給不熬夜崽崽點個三連(點贊、收藏、關注)支持一下哈,大家的支持就是我寫作的無限動力。 前言 概述:分佈式緩存的概念 分佈式緩存是一種在分佈式系統中管理緩存的策略,它通常用於提升系統的性能,減少數據庫的負擔,並優化響應時間。緩存是一種存儲臨時數據的機制,常見的緩存實現包括內存緩存、文件緩存、以及分佈式緩存

redis , 分佈式緩存 , 緩存 , 後端開發 , JAVA

呀哈哈kk - 【詳解】HadoopMapReduce實現從海量數字信息中獲取最大值

Hadoop MapReduce實現從海量數字信息中獲取最大值 在大數據處理領域,Hadoop是一個非常重要的工具。它通過MapReduce編程模型來處理和生成大規模數據集。本文將介紹如何利用Hadoop的MapReduce框架從海量數字信息中找出最大值。 1. 環境準備 1.1 安裝Hadoop 確保你的環境中已經安裝了Hadoop。如果還沒有安裝,可以

hadoop , text , 後端開發 , JAVA , apache

wx690f565d7bc78 - 什麼是Java中的指令重排?

一、指令重排的定義 在執行程序時,為了提高性能,編譯器和處理器常常會對指令進行重新排序。 編譯器重排:編譯器在不改變單線程程序語義的前提下,重新安排語句的執行順序。 處理器重排:CPU 採用了指令級並行技術,將多條指令重疊執行。如果不存在數據依賴性,處理器可以改變語句對應的機器指令的執行順序。 二、指令重排的背景和原因 指令重排的

執行順序 , MySQL , 數據庫 , 編譯器 , 多線程

Zeran - 為什麼不直接@Autowired注入交由spring容器管理的Bean,而是選擇構造注入?

autowire注入方式,在spring4.0後不推薦,原因是可能會造成循環依賴的問題推薦採用構造器或者setter方法注入,示例: private final Init init; @Autowired public DepositServiceImpl(Init init) { this.init = init; } @Autowired和構造方法執行的順序解析 先看一段

spring , autowired , JAVA , bean , get

用户bPbhIAe - 一個 Bug JDK 居然改了十年?

問題現象 今天偶然看到了一個 JDK 的 Bug,給大家分享一下。 假設現在有如下的代碼: ListString list = new ArrayList(); list.add("1"); Object[] array = list.toArray(); array[0] = 1; System.out.println(Arrays.toString(array)); 上面的代碼是可以正常支執行

數組 , JAVA , 集合

程序員波特 - 三萬字長文總結常見的線性結構

前言   本篇博客主要是記錄手寫這些這數據結構的底層實現,加深對線性結構的理解,實現自己的一個小型數據結構庫,也會進行簡單的時間複雜度分析,對不同的實現進行比較和優化,即側重於代碼實現。由於數據結構是實踐性比較強的一個科目,希望大家在看這篇博客時,自己也去寫一下代碼,看一下運行結果是不是自己想要的,我也會貼出我的運行結果來進行分析。 數組 數組介紹   數組是在內存中存儲相同數據類型的連續的空間,

數組 , 數據結構 , 鏈表 , JAVA , 隊列

小碼哥068 - 智慧家政系統核心技術解析

一、開發背景 上班族家庭:由於工作繁忙,無暇顧及家務,對日常保潔、家電清洗等便捷高效的家政服務需求強烈,希望能夠通過簡單的操作,在合適的時間預約到專業的家政人員上門服務,並且對服務質量和服務人員的專業性有較高要求 一些企業為員工提供福利,會定期採購家政服務,如辦公室清潔、企業食堂後勤服務等;同時,醫療機構、學校、酒店等也需要專業的家政服務來

數據 , 微服務 , 後端開發 , JAVA

我愛哇哈哈 - 聊聊怎麼更好去設計數據庫表

作為一名資深後端開發,你有沒有遇到過這樣的場景:接手一個新項目,看到前任同事設計的數據庫表結構,簡直讓人懷疑人生?表名莫名其妙,字段命名混亂,關係不清不楚,查詢效率低下.. 這讓我深刻意識到了:哪怕是一些"高級開發",也並不知道怎麼去設計一個好的表結構。 於是決定和大家一起探討如何更好的設計表結構。所有觀點都是結合多年的經驗得來,不一定正確,如有錯誤之處歡迎大家指正。 一、表

表名 , 字段 , yyds乾貨盤點 , 後端開發 , JAVA , SQL

逐夢AI - 基於YOLOv8的可回收瓶類垃圾快速識別與自動化分揀|完整源碼數據集+PyQt5界面+完整訓練流程+開箱即用!

基於YOLOv8的可回收瓶類垃圾快速識別與自動化分揀|完整源碼數據集+PyQt5界面+完整訓練流程+開箱即用! 源碼包含:完整YOLOv8訓練代碼+數據集(帶標註)+權重文件+直接可允許檢測的yolo檢測程序+直接部署教程/訓練教程‘ 源碼在文末嗶哩嗶哩視頻簡介處獲取。 本系統支持在多種場景下進行實時瓶類識別與分類: • 圖片識別 • 文件夾批量檢測 • 視頻流檢測 • 攝

機器學習 , 人工智能 , 深度學習

程序猿DD - 微服務正在悄然消亡:這是一件美好的事

最近在做的事情正好需要系統地研究微服務與單體架構的取捨與演進。讀到這篇文章,許多觀點直擊痛點、非常啓發,於是我順手把它翻譯出來,分享給大家,也希望能給同樣在複雜性與效率之間權衡的團隊一些參考。 微服務正在悄然消亡:這是一件美好的事 為了把我們的創業產品擴展到數百萬用户,我們搭建了 47 個微服務。 用户從未達到一百萬,但我們達到了每月 23,000 美元的 AWS 賬單、長達 14 小時的故障,以

微服務

程序員小富 - 上線別再“一刀切”!Gateway 做流量染色 + 灰度發佈,告別線上事故

大家好,我是小富~ 最近團隊迭代頻繁,連續幾周都在做新功能上線,從測試環境驗證到生產環境放量,全程謹小慎微沒出一次故障,主要是用好了 Spring Cloud Gateway 的 流量染色 和 灰度發佈。 很多同學面試時被問用過 SpringCloud Gateway 嗎?,只會説做限流、鑑權,但這些都是網關的基礎操作。要想出去吹,得説用網關解決線上新版本平穩上線的問題。比如今天要分享的流量染色

springboot , JAVA

藍易雲 - MySQL之show profile相關總結

MySQL中的 SHOW PROFILE 性能分析詳解 在數據庫優化過程中,SHOW PROFILE 是MySQL提供的一個強大工具,用於分析查詢的執行性能。通過展示查詢在不同階段的執行時間和資源消耗,開發人員可以精準定位性能瓶頸,從而進行有效優化。本文將詳細介紹如何使用 SHOW PROFILE 進行性能分析,並結合實例解釋其應用方法。📊 1. SHOW PROFILE 概述 🌟 SHOW

Kotlin , swift , xcode , android-studio , ios

認真的紫菜 - Kotlin小技巧之用Transformations.map方法轉換LiveData

本文首發於公眾號“AntDream”,歡迎微信搜索“AntDream”或掃描文章底部二維碼關注,和我一起每天進步一點點 在Kotlin中,transformations.map是用於將一個 LiveData 的數據進行轉換的拓展函數,它屬於 Android Architecture Components 中的 LiveData 轉換部分。這個函數允許你在 LiveData 的數據發生變化時,自動地

Kotlin , 面試 , mvvm , Android , 程序員

呂秀才 - 深入淺出Java多線程(二):Java多線程類和接口

引言 大家好,我是你們的老夥計秀才!今天帶來的是[深入淺出Java多線程]系列的第二篇內容:Java多線程類和接口。大家覺得有用請點贊,喜歡請關注!秀才在此謝過大家了!!! 在現代計算機系統中,多線程技術是提升程序性能、優化資源利用和實現併發處理的重要手段。特別是在Java編程語言中,多線程機制被深度集成並廣泛應用於高併發場景,如服務器響應多個客户端請求、大規模數據處理以及用户界面的實時更新等。

java多線程 , 線程 , 多線程 , JAVA , thread

李通 - 使用 deploy 工具部署tio-boot

tio-boot官網 使用 deploy 工具部署 deploy 工具簡介 為了簡化部署流程,提高部署效率,我開發了一款名為 deploy 的工具,用於將 tio-boot 工程快速部署到自有服務器上。該工具分為客户端和服務端,用户需要先在服務器上安裝服務端,才能通過客户端進行部署操作。工具已開源,源碼地址如下: deploy 工具 deploy-server 工具 服務端安裝 關於如何安

deploy , JAVA , cd , ci

字節幺零二四 - 併發編程 | Java中AQS的基本實現原理及簡單使用

AbstractQueuedSynchronizer(AQS),是阻塞式鎖和同步器工具的框架。本文將初步介紹Java中AQS的基本原理,並基於AQS實現自定義阻塞式不可重入鎖,以此來演示AQS的使用。下期會以 ReentrantLock 為例,從源碼的層面介紹 AQS 的核心實現 acquire() 方法。 AQS 的目標 提供阻塞式獲取鎖 acquire() 和非阻塞式嘗試獲取鎖 tryAc

JAVA , juc , 併發編程 , 後端

半夏微光zhang - SpringBoot-yaml文件使用

yaml格式介紹 YAML(YAML Ain’t Markup Language)是一種基於層次結構的數據序列化格式,旨在提供一種易讀、人類友好的數據表示方式。 與.properties文件相比,YAML格式有以下優勢: 層次結構:YAML文件使用縮進和冒號來表示層次結構,使得數據之間的關係更加清晰和直

spring , 配置文件 , yaml , 後端開發 , JAVA

vivo互聯網技術 - 分佈式鎖的實現原理

作者:來自 vivo 互聯網服務器團隊- Xu Yaoming 介紹分佈式鎖的實現原理。 一、分佈式鎖概述 分佈式鎖,顧名思義,就是在分佈式環境下使用的鎖。眾所周知,在併發編程中,我們經常需要藉助併發控制工具,如 mutex、synchronized 等,來保障線程安全。但是,這種線程安全僅作用在同一內存環境中。在實際業務中,為了保障服務的可靠性,我們通常會採用多節點進行部署。在這種分佈式情況下,

redis , 分佈式鎖 , zookeeper

李棟 - 【Java 第一篇章】基礎篇之簡單介紹

一、簡介 Java 是一種廣泛使用的編程語言,最初由 Sun Microsystems(現在歸 Oracle Corporation 所有)的 James Gosling 及其團隊於 1995 年開發。Java 是一種面向對象的編程語言,它設計用於具有較少實現依賴性的應用程序開發,即“一次編寫,到處運行”(Write Once, Run Anywhere, WORA)。這一特性主要得益於 Java

基礎 , JAVA , 後端

素雨末 - 遞歸和迭代比較優缺點

一、定義簡述 遞歸:函數在執行過程中調用自身,通過不斷縮小問題規模,最終達到一個“基準條件”後返回。 迭代:通過循環結構(如for、while)重複執行一段代碼,直到滿足退出條件。 二、優缺點對比 維度

Stack , 遞歸 , 後端開發 , JAVA , 迭代

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

我不是碼農 - mybatis和mybatis-plus的json字段類型失效以及處理原理解析

最近接手一個老項目,進行json類型字段的對象映射,使用的是老版本的mybatis-plus(2.1.8),出現了一些問題 1、@TableFiled註解沒有typeHandler屬性,只能通過@TableField(el = "filed, typeHandler=xxx.TypeHandler")這種方式來配置 2、配置了@TableField(el = "filed, typeH

mybatis-plus , springboot , JAVA , Json , Mybatis