收藏 / 列表

老污的貓 - Java 二分法查詢

public static void main(String[] args) { Integer target = 7; // 初始化數據 ListInteger data = Arrays.asList(0, 1, 3, 5, 7, 9, 2, 4, 6, 8, 10); // 排序 Collections.sort(data); // 輸出

JAVA

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

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

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

悲傷的鴨蛋 - Maven、測試、Junit依賴

Maven的作用 管理依賴:通過pom.xml管理項目依賴的資源(jar包)。(不再需要每次都手動導入jar包) 項目構建(標準化跨平台的項目構建方式):complie,test,package,install(編譯,測試,打包,發佈)等項目構建流程 統一項目結構:提供標準、統一的項目結構(主程序,測試程序) 倉庫:用於存儲資源,管理各種jar包。 本地倉庫:自己計算機上的

junit , maven , 測試 , JAVA

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

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

設計模式 , JAVA , 策略模式

牛肉燒烤屋 - TCP 真的存在“粘包”問題嗎?

引言 許多開發者都曾面對過這樣一個的問題:明明分別調用兩次send()發送了"Hello"和"World",接收方卻可能在一個recv()調用中讀到完整的"HelloWorld";或是發送了一個完整的 JSON 對象,接收端卻需要多次讀取才能拼湊出完整數據。這種現象被中文技術社區廣泛稱為“TCP 粘包” 然而,若我們深入 TCP 協議的設計本質,會發現一個令人困惑的矛盾——RFC 文檔中從未定義過

tcp , 計算機網絡 , 後端

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

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

多線程 , JAVA

王中陽講編程 - 高階面經:Spring框架全析

在 Java 開發的浩瀚世界裏,Spring 框架無疑是一顆璀璨耀眼的明珠。無論是初涉編程領域的新手,還是經驗豐富的資深開發者,都難以忽視它的強大與實用。它宛如一把萬能鑰匙,為諸多複雜的企業級應用開發難題解鎖,那麼 Spring 框架究竟是什麼呢?下面就帶你一探究竟。 一、Spring 框架 是什麼? Spring 是輕量級的控制反轉(IoC)和麪向切面(AOP)的容器框架,可以很方便地對數據庫進

spring , 框架 , java框架 , JAVA , 後端

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

witt - mybatis升級到3.4.5後導致的偽bug

關鍵詞: mybatis、foreach、foreach context scope、MyBatis3.4.5、BindingException 背景: 隨着團隊開發人數越來越多,項目迭代越來越久,加上一些半吊子開發的盲目自信,項目如果不夠健壯,就會出現莫名其妙的問題,甚至讓測試團隊對某些開發一瞬間喪失全部信任。 起因是團隊有150多個服務的分佈式微服務項目,服務之間有RPC調用關係,也有公

spring , maven , mapper , JAVA , Mybatis

步履不停 - JWT學習

JWT(JSON Web Token)是比較流行的跨域認證解決方案。 一般來説做單點登錄見常的方式是將登錄憑證持久化,各服務都向持久層請求數據,這樣內部多個應用系統就可以共享登錄狀態。另一種方式是服務端只生成相關憑證但不保存,客户端先請求生成憑證,然後每次請求時將這個憑證帶上,由服務端校驗這個憑證是否有效。JWT就是這種方案 JWT原理 JWT原理是,服務器認證以後,生成一個JSON對象,返

jwt-auth , JAVA , token , Jwt

Java陳序員 - 告別命令行!一款開源跨平台的 Git 客户端!

大家好,我是 Java陳序員。 如果你是一名開發者,想必離不開 Git 這款版本控制工具。但操作 Git 往往需要藉助於命令行操作,有些命令晦澀難記,大大影響效率。 今天,為大家推薦一款開源免費的跨平台 Git 客户端,通過圖形化界面操作 Git, 告別命令行操作! 關注微信公眾號:【Java陳序員】,獲取開源項目分享、AI副業分享、超200本經典計算機電子書籍等。 項目介紹 Gitnuro

github , Git

半夏之沫 - Mybatis源碼-動態SQL的實現原理

大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言

where , foreach , SQL , if , Mybatis

jacheut - 談談時間輪算法

Kafka、Dubbo、ZooKeeper、Netty、Caffeine、Akka 中都有對時間輪的實現。 時間輪簡單來説就是一個環形的隊列(底層一般基於數組實現),隊列中的每一個元素(時間格)都可以存放一個定時任務列表。 時間輪中的每個時間格代表了時間輪的基本時間跨度或者説時間精度,假如時間一秒走一個時間格的話,那麼這個時間輪的最高精度就是 1 秒(也就是説 3 s 和 3.9s 會在同一個時間

定時任務 , 算法

福 - BlockingQueue - 基於TransferStack的SynchronousQueue

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

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

點墨 - 編譯器優化對多線程數據競爭的影響分析

編譯器優化如何讓多線程代碼"失效":從彙編視角解密數據競爭謎題 在多線程編程中,我們常遇到一個反直覺現象:關閉編譯器優化反而能暴露預期的數據競爭問題。本文通過分析MSVC編譯器對同一代碼的不同優化策略,揭示現代編譯器如何通過指令重排和內存訪問優化,徹底改變多線程程序的執行軌跡。 一、現象之謎:優化等級決定程序行為 當使用/O2優化編譯給定代碼時,程序輸出穩定在10萬或20萬這兩個確定值,而非預期的

c++ , 多線程

清醒的人最荒唐 - SpringBoot實現自定義路由覆蓋

背景 公司最近有一個項目二期需要對一些功能進行改造,涉及部分框架內置業務接口個性化定製,兼容老接口功能並且增加一部分新的數據返回,由於前端調用這些接口分佈較多且較為零碎,修改測試成本較大,所以打算在框架層面提供路由覆蓋功能,加快項目進度減少無技術含量的修改帶來的系統風險 設計 提供自定義註解指定需要覆蓋的路由及新路由地址 系統啓動時掃描所有註解

系統啓動 , List , 自定義 , 後端開發 , JAVA

湯太鹹 - JAVA基礎知識String以及文件目錄讀取

String基礎 String s = "Hello World!"; s.chars().mapToObj(letter - (char)letter) .map(Character::toUpperCase) .forEach(System.out::print); //輸出 HELLO WORLD! StringBuffer是同

JAVA , string

華為雲開發者聯盟 - 瀏覽器同源策略,聽説過麼?

摘要:同源策略就是指必須在同一個協議,域名,端口號下,而且三者必須一致的。 本文會從以下幾個方面講述同源策略: 第一點 what:什麼是同源策略 第二點 why:為什麼需要同源策略 第三點 how:如何解決經典的跨域問題 什麼是同源策略 什麼是同源策略呢?通常一個概念出來之後,我會從生活的實際例子找到解析,你可以想象一下,假如你們家的房子,是不是不允許陌生人進入,如果可以隨便進入,那麼久有可能被盜

cors , 瀏覽器 , 同源策略 , 跨域 , Jsonp

cicadasmile - Java進階 | 從整體上觀察面向對象

一、面向對象 面向對象是Java編程中最核心的思想,基本特徵:繼承、封裝、多態。 1、特徵之封裝 將結構、數據、操作封裝在對象實體中,使用時可以不關注對象內部結構,只能訪問開放權限的功能入口,從而降低程序耦合程度,提供安全性和可持續維護性。 public class Concept01 { public static void main(String[] args) { S

封裝 , 多態 , 繼承 , 面向對象設計模式

mob64ca13fe62db - accessible: module jdk.compiler does not “opens com.sun.tools.javac.processing“ to unnamed module_qq

處理“module jdk.compiler does not “以” com.sun.tools.javac.processing” to unnamed module”錯誤的終極指南 開發過程中遇到這個討厭的錯誤,讓你抓耳撓腮嗎?別擔心,你並不孤單。這個錯誤往往源於JDK項目版本與Maven編譯版本的不一致。本文將深入探討這個錯誤,並提供詳細的分步指南,幫助你輕鬆解決它

新版本 , JAVA , ci , 前端開發 , Javascript

mizeyar - Java 開發者注意!JEP 500 將徹底改變 `final` 字段的使用方式

Java 開發者注意!JEP 500 將徹底改變 final 字段的使用方式 Java 開發者們,你們是否曾經因為反射修改 final 字段而頭疼不已?現在,JEP 500 來了,它將徹底改變這一局面,讓 final 字段真正不可變!這對於 Java 生態系統來説,可是一個重大變革哦。 文章目錄 Java 開發者注意!JEP

oracle , 不可變 , 開發語言 , Java新特性 , 數據庫 , JAVA , final

野小白 - 枚舉類映射數據庫字段的幾種實現方式

需求背景 對於一些數據庫字段,雖然它只有幾種有限的內容種類,但它的格式並不完全遵守SCREAMING_SNAKE_CASE,所以就需要進行一些設置來保證Spring Data JPA映射正確的值。 實現方式 枚舉類Color: public enum Color { RED, GREEN, BLUE } 默認的實現是映射枚舉值的ORDINAL值 @Entity public

spring , jpa , springboot , JAVA , spring-data-jpa

huan1993 - Transaction rolled back because marked as rollback-only問題解決

1、背景 在我們的日常開發中,經常會存在在一個Service層中調用另外一個Service層的方法。比如:我們有一個TaskService,裏面有一個execTask方法,且這個方法存在事務,這個方法在執行完之後,需要調用LogService的insertLog方法記錄一條日誌,這個方法上也有事務,不管日誌記錄成功還是失敗,都不能影響execTask方法的執行。因此我們很容易寫出如下代碼。 @Tr

spring , springboot , JAVA , 事務 , 後端