自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(212)
  • 资源 (4)
  • 收藏
  • 关注

原创 【发布策略】一篇文章让你分清金丝雀发布vs灰度发布

核心逻辑将新版本 逐步暴露给随机用户或流量(如按比例分流),通过监控逐步扩大范围。将新版本 定向发布给特定用户群体(如按用户ID、地理位置、设备类型等筛选),验证功能效果。类比类似矿工用金丝雀探测危险——先让“少量用户”充当试验品。类似画家在灰色画布上试笔——通过定向用户群体测试功能,观察“颜色”是否符合预期。侧重点稳定性验证(确保新版本在生产环境中运行正常)。业务效果验证(验证功能是否符合用户需求,或A/B测试不同版本的效果)。

2025-05-01 14:18:12 879

原创 【LeetCode·简单】一行代码解决459. 重复的子字符串——你真的会用 String 的 contains()方法吗?

先看下题目,感兴趣的同学可以先自己去做下题目地址:https://leetcode.cn/problems/repeated-substring-pattern/description/https://leetcode.cn/problems/repeated-substring-pattern/description/只要一行代码为什么把字符串本身拼接一下,掐头去尾,如果还包含一开始的字符串,就证明这个字符串可以通过他的一个它的子串拼成?我们看下下面这个图那么为什么呢(ο´・д・)??如果一个字符串

2025-04-08 11:50:59 554

原创 【Leetcode·中等】如何初始化(583.两个字符串的删除操作·Delete Operation for Two Strings)

这两种写法的主要差别其实就是在初始化的时候,可以看下他俩的 dp 数组在代码中的体现就是所以如何定义其实并没有对错的问题,只是在处理逻辑上会有一些些差异~~

2025-03-31 13:17:28 1105 3

原创 【保姆级】jar打包成可执行文件·亲测可行

先上效果~本文写自2025.1.19,目前为止,所有列出资源均有效,请放心食用(^^)/■保姆级操作(以Macbook为示例),跟做即可

2025-01-19 18:03:15 364 6

原创 【保姆级】今天你排序了吗^ ^/■1道题复习5大排序算法(附详细复杂度分析)

这是一道数组题,按照官方题目的推荐应该要用双指针的。

2025-01-16 14:44:31 1071 1

原创 【伪随机数】关于排序算法自测如何生成随机数而引发的……

伪随机数就是由算法生成的随机数,真随机是真正随机的数emmmm...哈哈约等于没说哈其实一般来讲,计算机生成的的都叫伪随机数,因为他们都有以下几点共同之处

2025-01-13 15:07:57 887

原创 【Leetcode·链表】有咩有递归递不明白的?来看保姆级递归分析!

我们从一道简单题入手~建议都先去做一做建议先去做一做

2025-01-12 11:55:00 321 1

原创 【Leetcode·链表】关于到底要不要设置虚拟头节点的那些事儿

为什么把这两道题放在一起,是因为这两道题对于是否需要加虚拟头节点区别比较明显。

2025-01-11 16:47:15 788

原创 【Leetcode·数组】3步带你转出 59. 螺旋矩阵 II(spiral matrix ii)

当你把“上右下左”即转 1 圈看正一个整体,只有这4个都完成了才是完成1次循环,这样,其实就不难了,你要做的就是判断要转几圈(几圈就是几次循环♻️),以及每一圈的“上右下左”分别该如何处理(循环内部逻辑)这道题其实并不难(别打我= =,第一次做的时候我也没转出来),其实我们一开始转不出来的原因就在于没有。每圈分别处理“上右下左”(因为按这个顺序值只需要每次+1 即可)处理最后一个数(如果 n 是奇数的话)恭喜你又做完了一道题🎉🎉🎉~~~时间复杂度: O(n^2)空间复杂度: O(1)

2025-01-09 18:09:55 378

原创 【填坑向】Command line is too long. Shorten the command line via JAR manifest or via a classpath file and

二话不说,,直接跟图操作即可100%有效~

2024-12-27 18:49:11 347 1

原创 【填坑向】Apollo配置日志不生效

在Spring Boot环境中使用Apollo配置中心时,需要进行一些基本的配置以确保Apollo能够正确地与Spring Boot应用集成,我们先对这些配置项进行介绍说明(包括必须配置项和可选配置项)

2024-12-27 18:37:32 685

原创 【保姆级】Mac如何安装+切换Java环境

本文从如何下载不同版本的JDK,到如何丝滑的切换JDK,以及常见坑坑的处理方法,应有尽有,各位看官走过路过不要错过~~~

2024-12-12 19:54:05 411

原创 【保姆级】Mac上IDEA卡顿优化

保姆级操作,跟着操作即可~~~

2024-11-17 15:27:48 1081

原创 【保姆级·附完整代码】如何自定义复杂的排序统计(以统计周一~周日不同的营业时间为例)

地图上需要显示每家超市周一到周日不同的营业时间,要求按照周一、周二、周三、周四、周五、周六、周日的顺序,并且如果营业时间相同,则合并成一条,合并的天如果相邻,则只展示起始和结束的天数(如周一至周三营业时间都一样就显示为:Mon-Wed 08:00-19:00),如果不相邻,则用顿号连接(如周一和周三营业时间一样就显示为:Mon、Wed 08:00-19:00),正整理后如果超过一条数据则仍然按照周一、周二、周三、周四、周五、周六、周日的顺序排序。要实现上述功能主要用到了Java中的。

2024-11-05 11:55:53 81

原创 【保姆级】Spring Retry 教程

什么是“重试”?为什么要进行“重试”呢?“重试”(Retry)是一种在编程和软件开发中常见的策略,用于处理在执行操作时可能遇到的临时性错误或异常。当一个操作因为某些原因(如网络问题、服务不可用、资源暂时不可用等)失败时,重试机制会尝试再次执行该操作,以期在下一次尝试时能够成功。我们今天要用Spring Retry就是为了简化“重试”操作的一套框架首先,上Spring Retry的源码地址:感兴趣的同学可以去clone下来瞅瞅~

2024-10-16 09:11:37 523

原创 【保姆级】基于retrofit调用第三方接口

Retrofit 是一个类型安全的 HTTP 客户端,用于 Android 和 Java 应用程序,由 Square, Inc. 开发。它将 HTTP API 转换为 Java 接口。使用 Retrofit,你可以轻松地构建 RESTful API 客户端,通过注解和动态代理的方式,Retrofit 允许开发者以一种声明性的风格编写网络请求代码。类型安全:Retrofit 接口的方法返回类型是泛型的,这意味着编译器可以在编译时检查类型错误。同步和异步请求:Retrofit 支持同步(execute()

2024-10-16 09:05:31 288

原创 【保姆级】手把手带你用MyBatis Plus制作代码生成器

MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,是一个为简化开发、提高效率而生的增强工具。具有无侵入损耗小强大的 CRUD 操作支持 Lambda 形式调用支持主键自动生成支持 ActiveRecord 模式支持自定义全局通用操作内置代码生成器内置分页插件等特性。就像MyBatis-Plus官方网站上所说的我们的愿景是成为 MyBatis 最好的搭档,就像魂斗罗中的 1P、2P,基友搭配,效率翻倍。官方地址是。

2024-10-15 10:25:00 102

原创 【保姆级】DO转excel->带你迅速完成字段整理

这是一篇介绍如何通过将代码内容转成excel表格的文章,为啥要转excel呢?虽然用 swagger 可以自动生成 API 文档,但是会有一些公司需要按照指定的格式整理接口文档进行归档(emmmm不要问我为什么知道有。。)这些指定的格式一般都是基于word或者excel的,而诸如字段名、字段类型、字段含义基本都是采取表格的形式,今天的文章就手把手带实现DO对象转excel表格~二话不说,先上代码(仅需要实现功能的同学可以直接拿去用~)

2024-10-15 10:18:06 157

原创 【物联网】一篇文章带你认识RFID(射频识别技术)

无源标签由一块小芯片和天线组成,无需电池,依靠读卡器产生的电磁场(无线电波)获取工作所需的能量,当进入阅读器的电磁场范围内,将从天线获得感应电流,经升压电路后转换为芯片的电源,同时感应电流所获取的能量通过射频前端电路变为数字信号送入逻辑控制电路进行处理,需要回复的信息则从标签存储器中发出,经逻辑控制电路送回射频前端电路,最后通过天线发回读写器。据统计RFID技术运用于物流管理领域,准确率能达到甚至超过99%,减少了企业的资源浪费,并且所有的商品物流都会被记录下来并生成文档,方便追踪和进一步优化识别。

2024-09-15 14:35:47 4106 3

原创 【保姆级】使用Java注解和反射实现JSON字段自动重命名

不知道有没有同学遇到过对接业务方代码非常“独具一格”(不符合通用规范且不愿意配合修改emmmm。。。),于是就只能“被迫”按他的格式来,但是又不想因为他的不规范导致我们自己创建的接收对象也非常的“一言难尽”。。。今天这篇帮你解决这个问题~(老规矩:附完整可执行代码)先给初学Java的同学补下基础,涉及到一些实现这个功能需要的知识点(了解的朋友可以直接跳过~)

2024-09-08 17:52:40 334

原创 启动正常但无法Debug?解决ERROR: transport library not found: dt_socket

项目启动类的jre环境与项目设置里jdk环境配置未统一。项目启动时正常,但是Debug就报错,如下图。① 项目设置里jdk环境配置。② 启动类的jre环境。

2024-05-24 12:57:53 914

原创 【保姆级】Protobuf详解及入门指南

Protobuf(Protocol Buffers)协议😉 Protobuf 是一种由 Google 开发的二进制序列化格式和相关的技术,它用于高效地序列化和反序列化结构化数据,通常用于网络通信、数据存储等场景。

2024-03-11 16:45:22 30353

原创 【Redis】深入理解 Redis 常用数据类型源码及底层实现(6.详解Set和ZSet数据结构)

本文是深入理解 Redis 常用数据类型源码及底层实现系列的第6篇~前5篇可移步( ̄∇ ̄)/

2024-02-29 10:45:04 1122 1

原创 【Redis】深入理解 Redis 常用数据类型源码及底层实现(5.详解List数据结构)

本文是深入理解 Redis 常用数据类型源码及底层实现系列的第5篇~前4篇可移步( ̄∇ ̄)/正文开始~在Redis 3之前,List数据结构底层ziplist和linkedlist双向链表(当列表对象中元素的长度比较小或者数量比较少的时候,采用ziplist来存储(内存紧凑,访问效率高,但是更新效率低,当数据量较大时,可能导致大量的内存复制)当列表对像中元素的长度比较大或者数据数量比较多的时候会使用linkedlist(修改效率高,但是内存开销大,当节点较多时,会产生大量的内存碎片)。

2024-02-28 10:29:35 854

原创 【数据结构与算法】“黑白标记法”带你彻底吃透二叉树的前中后序遍历(超好记的迭代法模版)

做过二叉树前中后序遍历的同学应该有些印象,这三种遍历方式的递归法非常的简单,并且非常的相似,只需要稍微调整下处理逻辑(这里指将节点值添加进集合)的位置即可。

2024-02-20 17:58:11 1143 2

原创 【Redis】深入理解 Redis 常用数据类型源码及底层实现(4.详解Hash数据结构)

在Redis 6及其以前的版本中,ziplist为了节省内存而采用了紧凑的连续存储方式,ziplist是一个双向链表,可以在时间复杂度O(1)下从头部或者尾部进行插入/删除。

2024-02-18 18:47:38 1366

原创 【Redis】深入理解 Redis 常用数据类型源码及底层实现(3.详解String数据结构)

type都是string,但是encoding不同int:保存长整型(long)的64位(8个字节)的符号整数只有整数才会使用int,如果是浮点数,Redis内部会先将浮点数转换为字符串值,然后再保存最小值是-2^63(-9,223,372,036,854,775,808)最小值是2^63-1(9,223,372,036,854,775,807)默认值是0Lembstr:保存长度小于44字节的字符串或者长度大于19。

2024-02-05 17:22:38 1059

原创 【自制小工具】如何给你的图片添加自定义水印(附完整代码)?

这段代码用到了Graphics2D,Graphics2D是Java中用于绘图的工具类,是Graphics类的扩展,可以绘制形状、图像、文本等各种二维内容,上面的代码的逻辑是先搜索你电脑里都安装了哪些字体,然后依次用这些字体在特定的位置给特定地址的图片加上特定的文字水印~当然这只是其中一部分字体,,,我也是今天才发现我电脑里居然装了那么多字体 ==这是一篇关于怎么尽可能的用尽你电脑里的所有字体给你的图片加水印。搞定撒花*★,°*:.☆( ̄▽ ̄)/$:*.°★*。就是在原有的基础上添加了透明度和循环。

2023-12-31 20:36:51 659 4

原创 【Redis】深入理解 Redis 常用数据类型源码及底层实现(2.版本区别+dictEntry & redisObject详解)

在关于这些底层数据结构是如何构成我们熟悉的Set、Sorted Set 、List、Hash……的Redis和7并不完全一致,我们来看看两个版本之间的区别。

2023-12-26 10:02:52 2125 6

原创 【Redis】深入理解 Redis 常用数据类型源码及底层实现(1.结构与源码概述)

在文章中我们介绍了Redis常用的10大数据类型,这10大数据类型可并不是直接在底层通过代码实现的,而是通过不同的组合起来的,这篇我们介绍下Redis常用数据类型的底层数据结构( ̄∇ ̄)/

2023-12-12 14:22:34 1502 6

原创 【GIS】1.什么是空间分析?

空间分析不仅仅是指做一个地图这么简单,而是为这些位置空间添加实际的值,并通过对这些值的转换、计算等操作,以及应用一些分析方法来获取/发现更深层面的地理空间知识,使这些数据超越地图🗺️本身。从原始数据转化成信息,然后演变成知识,甚至有可能演变智慧。简单地说就是地理和科学的结合。如果,那么这就定义了空间数据科学。

2023-12-12 14:14:12 1430 6

原创 【JUC】Java并发编程从挖坑到入土全解(4-一文讲通LockSupport与线程中断->长图预警)

首先,一个线程不应该由其他线程强制中断或停止,而是应该由线程自己自行停止,自己来决定自己的命运(所以,Thread的stop()、suspend()、resume()都已经废弃了)其次,在Java中没有办法立即停止一条线程,然而停止线程又显得那么重要(比如需要取消一个耗时/错误操作)。因此,Java提供了一种用于停止线程的协商机制——中断,也即中断标识协商机制。中断只是一种协作协商机制,Java没有给中断增加任何语法,中断的过程完成完全要求程序员自己实现。

2023-10-10 15:46:15 557 11

原创 【JUC】Java并发编程从挖坑到入土全解(3-线程池源码分析)

在web开发中,服务器会为每一个请求分配一个线程来处理,如果每次请求都要创建一个线程的话,实现起来虽然简单,但是存在一个问题:如果开发的请求数量非常多,但每个线程执行的时间很短,这样就会频繁的创建和销毁线程,如此会大大降低系统的效率,很有可能出现服务器在创建和销毁线程上花费的时间和消耗的系统资源比实际处理的用户请求的时间和资源还多。于是,线程池应运而生,线程池满足了一个线程执行完一个任务不会被销毁,而是可以继续执行其他任务的目的。

2023-09-28 11:34:39 454 13

原创 【JUC】Java并发编程从挖坑到入土全解(2-当我们聊锁时,锁的到底是什么)

当对方法加synchronized关键字时,锁的是当前对象(this),所以即使是多线程只要调用的是同一个对象的synchronized方法,就需要串行执行(案例1和案例2),未被synchronized修饰的普通方法则不受影响(案例3)如果是不同对象则不受影响(案例4),分别在自己的对象上加锁,不会影响到别的对象当在带有“static”的方法上加了synchronized关键字时,锁的是当前类,无论几个对象,都要抢类的这一把锁,因而是否使用同一对象都会串行执行。

2023-09-17 18:35:37 233 2

原创 【JUC】Java并发编程从挖坑到入土全解(1-直达底层源码的线程基础)

JUC全称java.util.concurrent ,是在并发编程中使用的工具包。

2023-09-12 18:01:35 233 1

原创 【填坑向】MySQL常见报错及处理系列(Communications link failure & Access denied for user ‘root‘@‘localhost‘)

翻一下大致的意思就是默认会按照如下的顺序读取配置文件,我上面贴出的配置文件就是第一个/etc/my.cnf,但显然目前在运行的MySQL并不是使用的这个配置文件,保险起见,我依次查看了列出的所有位置的my.cnf,看是否存在,存在的话内容是什么,于是发现/usr/local/etc/my.cnf也存在,并且未配置端口信息,我在该位置的my.cnf中添加了端口配置(port = 3306)并重启后,再次执行lsof -i:3306。执行brew services list可以看到MySQL是启动成功了的。

2023-08-24 14:12:02 640

原创 【填坑向】MySQL常见报错及处理系列(Navicat:2002 - Can‘t connect to MySQL server on ‘127.0.0.1‘ & 获取配置文件my.cnf路径)

由于不同版本的MySQL可能默认的配置文件位置不同,并且有些版本的MySQL在安装时并不会自动创建my.cnf文件,需要用户手动创建。上面命令返回的路径+--verbose --help |grep -A 1 'Default options',然后回车后显示的就是my.cnf的路径。上面红框框内的就是读取配置文件my.cnf的路径的顺序(MySQL在启动时将按照列出的顺序读取这些文件中的配置,即优先级从左到右依次降低)可以尝试右键选择“高级”,勾选“使用套接字文件”

2023-08-24 13:37:04 1649

原创 【填坑向】MySQL常见报错及处理系列(ERROR! The server quit without updating PID file)

MySQL 数据文件通常位于 /usr/local/var/mysql 目录中,可以使用sudo rm -rf /usr/local/var/mysql进行删除;如果只有这意味着只有 grep mysql 这一个进程与mysql相关,即MySQL 服务器当前并没有在运行,说明 MySQL 服务器已经停止了,无需再手动删除。删除 MySQL 安装文件和数据文件,MySQL 的默认安装位置是/usr/local/mysql,可以使用sudo rm -rf /usr/local/mysql删除它。

2023-08-22 15:18:55 996 1

原创 【保姆级】Redis集群(cluster)本地案例手把手操作指南(含常见问题以及处理方式)

本案例源自Redis官网,有兴趣的朋友可以直接访问。

2023-08-08 16:53:19 975 2

原创 【Redis】使用Docker镜像配置集群时的Operation timed out问题

在 Docker 容器内运行的程序可能会使用与程序认为正在使用的端口不同的端口来公开。但是紧接着,官网也提出了这么操作并不安全,并建议如果想让一个容器可供其他容器访问,则无需发布该容器的端口。172.17.0.2是我其中一个Redis实例的IP和端口号,并且我用主机ping 172.17.0.2是可以ping通的。而Docker使用技术的就是端口映射:在Docker容器内运行的程序可能会使用与程序认为正在使用的端口不同的端口来公开。为了让Docker兼容Redis Cluster,需要使用Docker的。

2023-08-08 15:41:14 653 1

Spring源码(5.2.21版本,包含zip和tar.gz两种格式,JDK8可用)

方便GitHub下载速度特别慢的同学 搭配保姆级编译博文https://blog.csdn.net/aqin1012/article/details/124295132食用更佳~

2022-04-20

Cesium ion 官网的示例文件AGI_HQ.zip

Cesium ion 官网的示例文件AGI_HQ.zip You can upload your own data to Cesium ion and tile it into 3D Tiles, an open specification for streaming massive heterogeneous 3D geospatial datasets. For this tutorial, we’ve provided a sample KML/COLLADA package with a single building. Use it to create a 3D Tiles tileset and add it to the app. Download it by clicking here. 这里提到的文件(官网的感人速度。。。哎)

2020-04-02

Cesium.rar

鉴于官网的感人速度(此安装压缩包内的demo可直接使用nodejs发布) 配套安装教程:https://blog.csdn.net/aqin1012/article/details/105231446

2020-03-31

解释熵的思维导图_通俗形象

超容易理解的解释熵的思维导图,通俗明了,配图生动

2018-10-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除