自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(367)
  • 收藏
  • 关注

原创 【Java】深入剖析Java枚举类

枚举类是Java 5引入的,在Java 5之前,Java并没有内置的枚举类型,只能通过自定义类来实现类似枚举的功能。...Java 枚举类是一种特殊类型的数据结构,一般用来存储定义一些字符串,数字等数据结构。枚举类中的每个常量都称为枚举常量。枚举类在Java中使用关键字enum定义。CONSTANT1,CONSTANT2,CONSTANT3,...其中,EnumClass为枚举类的名称,CONSTANT1、CONSTANT2、CONSTANT3等为枚举常量的名称。

2023-12-08 16:15:00 1088

原创 【数据结构】【项目】BitMap?40亿电话号码如何快速去重?

40亿电话号码如何快速去重?我们往往会想到bitmap数据结构中的 Bitmap 是一种位图索引非常高效的数据结构,用于存储处理大规模数据的位信息,其中每个位对应于一个元素,如果位为1,则表示该元素存在于集合中,否则表示不存在。如果要表示一个包含 10 个元素的数据集,可以创建一个包含 10 位的位数组。Bitmap 支持插入和查找。插入操作将对应位置的位从 0 设置为 1,将元素添加到数据集中。查找操作通过检查相应位置的位来确定元素是否存在于数据集中。如果位为 1,表示元素存在;

2023-09-13 09:58:06 873 1

原创 【监控】Hertzbeat在docker的安装与部署

HertzBeat赫兹跳动是一个拥有强大自定义监控能力,无需 Agent 的开源实时监控告警系统。集 监控+告警+通知 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警通知一步到位,只需在浏览器配置YML就能使用这些协议去自定义采集任何想要的指标。拥有更自由化的阈值规则(计算表达式),邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 Webhook 等方式及时送达。

2023-06-28 21:10:16 1510

原创 【分布式系统】10种分布式唯一ID生成方案总结

为此TinyID提供了tinyid-client,可以向tinyid-server发送请求来获取可用号段,之后在本地构建双号段、id生成,如此id生成则变成纯本地操作,性能大大提升,因为本地有双号段缓存,则可以容忍tinyid-server一段时间的down掉,可用性也有比较大的提升。用完之后再去数据库获取新的号段,减轻数据库的压力。数据库生成的方式,每次获取ID时都需要直接访问数据库,效率较低,如果能够一次获取大量的ID,并将其缓存在本地,那样就可以大大的提升ID获取的效率,这也是号段模式的核心思想。

2023-06-18 22:18:43 1118

原创 【剑指offer】数据结构——队列 栈 堆

【代码】【剑指offer】数据结构——队列 栈 堆。

2023-05-30 19:21:00 142

原创 【剑指offer】数据结构——树

【代码】【剑指offer】数据结构——树。// 请实现两个函数,分别用来序列化和反序列化二叉树// 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格// 式保存为字符串,从而使得内存中建立// 起来的二叉树可以持久保存。序列化可以基于先序、中序、后序、层序// 的二叉树遍历方式来进行修改,序列化的结果是一个字符串,序列

2023-05-29 15:04:56 680

原创 【剑指offer】数据结构——链表

遍历法图解(非leetcode中的解法)// 输入一个链表的头节点,从尾到头反过来返回每个节点// 的值(用数组返回)。

2023-05-28 15:12:15 838 1

原创 【剑指offer】数据结构——字符串

StringBuilder辅助法。//05. 替换空格//请实现一个函数,把字符串 s 中的每个空格替换成"%20"。s

2023-05-28 14:31:14 1121

原创 【剑指offer】数据结构——数组

找重复的数,且数取值在数组长度范围内,大部分数肯定是不重复的,将它们摆放成数字和索引相同的数组,即{0, 2, 3, 1}我们希望摆成{0, 1, 2, 3}。// 如果数组中有重复的数字,把重复的数字放到参数duplication[0]中。// 字是重复的,但不知道有几个数字是重复的。// 如果数组中有重复的数字,函数返回true,否则返回false。// 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每。// 1,0,2,5,3},那么对应的输出是第一个重复的数字2。

2023-05-28 13:29:39 938

原创 【剑指offer】数据结构——数

/ 62. 圆圈中最后剩下的数字// 力扣// 0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里// 删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下// 的最后一个数字。// 例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个// 数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。// 牛客// 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此//。

2023-05-27 18:27:39 1209

原创 【maven】自定义构建maven的jar包依赖

Maven 是一个开源的项目管理和构建自动化工具,主要用于Java项目的构建、依赖管理以及报告和文档生成。Maven 通过提供一套标准化的项目结构和生命周期来简化和规范软件开发过程。Maven可以构建自定义的 jar 包依赖本文阐述自己定义自己的maven的jar包依赖,本地版本(不在中央仓库中的第三方库)。

2023-05-14 21:30:10 2033 1

原创 【技术碎片】【Java】计算椭圆的外接矩形坐标

遇到一个需要计算一般椭圆(斜椭圆)的外接矩形坐标的问题,在此记录一下已知椭圆的中心点坐标centerX centerY,椭圆的长轴,短轴majorRadius minorRadius,和旋转角度 angle。按理说java有原生的计算外接矩形的函数,先看看怎么实现的。

2023-05-06 15:04:39 1181 1

原创 【设计】【Redis】分布式限流与算法实现

服务的某些场景可能会出现短时间内的巨大访问流量,比如某宝在某个日子可能会有数倍于平时的高峰访问流量,导致接口超时异常,甚至服务被压垮,还可能会导致系统其它服务发生故障,造成服务雪崩。我们如何让系统保证高并发,同时还能保证稳定性?加机器吗?硬件资源不是无限的。为了避免极端情况,我们不得不在后端服务中采取保护措施:缓存、异步、降级、限流……

2023-04-19 14:53:28 475

原创 【Java基础】集合处理 Stream的使用与正则表达式过滤

软过滤这个说法是我自己瞎起的,我把错误输入直接抛出异常的情况叫硬过滤,把错误输入转为有效输入的情况叫软过滤。是将两组List合并为一组List并以Stream类格式返回:Stream重新转为List

2023-03-29 10:03:50 661

原创 【IDEA】【工具】提升幸福感 开发常用的工具 插件/网站/软件

开发常用的工具 插件/网站/软件

2023-02-28 16:58:36 853

原创 【科研】【ReID】科研论文怎么写?八股文写作思路

然后着重强调一下本文方法所要解决的问题,你解决了什么痛点,就要把这个痛点的“严重性”写出来。明白Introduction怎么写,其它部分的写作其实就是模型细节的陈述,实验细节的陈述,和重复强调Introduction中提出的观点(存在痛点!科研论文虽然是八股文,但是能经历了百年的发展而来,有它的合理性。因此,为了解决这些问题,文章提出了一种模型框架,更好地挖掘行人重识别的语义对齐信息表征。However,它们没解决好这个痛点,存在xxxx的劣势。However,它们没解决好这个痛点,存在xxxx的劣势。

2023-02-27 19:10:14 428

原创 【技术碎片】【PostgreSQL】Mybatis-Plus多值模糊查询,分页查询,order by的使用,遇到的问题

有数据表如下:假设有业务需求需要对查询结果进行多字段排序,比如对id和update_time需要降序排序,并且优先保证id的降序,其次再保证update_time的降序。有结果如下:可以看到id并没有降序排序,并且update_time也没有降序排序。可以发现结果也不对可以发现,如果使用语句则实际上是将查询结果按照update_time做升序,再对id做降序,并且以update_time升序为优先,也就是说desc只对它修饰的id字段生效,所以如果对多个字段排序,需要多次使用descasc。

2023-02-23 19:40:48 3965

原创 【Spring】事件发布与@EventListener

在Spring框架中,事件(Event)是一种实现应用程序不同组件之间解耦和通信的机制。Spring事件模型基于观察者设计模式,允许发布者(publisher)发送事件,而不需要知道哪些订阅者(subscriber)会接收这些事件。:这是所有Spring事件的基础类,自定义事件通常会扩展这个类。:任何希望接收特定类型事件的对象都需要实现这个接口。当一个事件被发布时,所有注册为该事件类型的监听器都会被通知。

2023-02-08 11:25:23 654 1

原创 【PostgreSQL】GIN索引安装与使用 - 全模糊匹配/数组匹配,PG批量插入上万随机生成数据,随机生成字符串/数组

PostgreSQLDBeaver打开SQL编辑器:输入命令运行即可:(光标选中某行后,按ctrl + enter可以只运行选中SQL)其它安装情况可以参考网上教程如:https://www.kancloud.cn/chunyu/php_basic_knowledge/2280100随后我们查看拓展库是否安装完成:建表语句有:随后我们要造假数据,为了合适模糊搜索,最好是随机生成的:随机生成字符串语句如下:有结果:随机生成中文如下:有结果:生成随机数组结合这些方法,我们生成10万条随机假数据插入表

2022-12-02 10:07:27 3567

原创 【JMeter】通过CSV传入列表参数 传入带逗号参数

在项目中经常遇到列表类型的入参,在通过JMeter测试时遇到如何通过CSV传入列表的问题,在此记录一下。注:JMeter 是一款开源的性能测试工具,由 Apache 软件基金会开发和维护。最初设计用于 Web 应用程序的负载和性能测试,但随着时间的推移,它的功能已经扩展到包括各种不同类型的测试。负载和性能测试:JMeter 可以模拟大量并发用户对目标系统进行负载测试,帮助评估系统的性能、稳定性和可扩展性。它可以生成各种负载模式,如恒定负载、逐步增加负载或突发负载。

2022-11-14 15:06:09 1804

原创 【PostgreSQL】PG左模糊 右模糊匹配查询,如何走btree索引

PG如果直接使用左右模糊查询,可能会不走btree索引,这里记录一下模糊匹配走索引的方法。这里使用DBeaver来操作本地数据库。首先打开SQL编辑页:我们建表为 test.user_content ,维护了主键id,username,user_id和content字段,并且插入一点数据,语句如下:如果使用以下是无法走索引的,因此需要改写为:或者是:执行SQL编辑页:得到我们的test.user_content:可以看到索引和依赖关系:之后我们对username字段进行模糊查询:可以看到成功走

2022-11-06 11:09:04 3206

转载 【JVM】如何通俗地讲解JVM各个组成部分和其基本功能?

组件的作用:首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交个底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution Engine),将字节码翻译成底层系统指令,再交由 CPU 去执行,而这个过程中需要调用其他语言的本地库接口(Native Interface)来实现整个程序的功能。运行时数据区(Runtime Data Area)

2022-10-11 11:27:13 114

原创 【YAPI】【IDEA】java接口直接导出为YAPI接口文档

本文主要阐述如何通过easyhapi插件快速导出Java接口为YAPI文档。注:YAPI 是一个高效、易用、功能强大的可视化接口管理平台,主要用于 API的开发、测试和文档管理。它提供了一个直观的界面来创建、编辑和删除接口,使得开发者可以方便地管理项目的各种 API。平台内置了自动化测试工具,允许用户编写和执行测试用例,以确保 API 的正确性和稳定性。YAPI 支持数据 Mock 功能,可以在开发过程中模拟后端服务的响应,帮助前端开发者独立进行开发和调试。

2022-10-09 11:47:51 5283 3

转载 【其它】visio画泳道图/跨职能流程图

先打开visio随后搜索跨职能流程图:这里选择第二个“跨职能流程图”,点击创建:可以看到编辑界面:如果需要添加素材,将一个泳道拖拽到编辑面板上:

2022-10-08 15:10:28 2503

原创 【Docker】【IDEA】springboot项目在服务器docker容器化部署,IDEA远程debug

前期环境配置可以参考。

2022-09-11 20:32:55 2380 1

原创 【Springboot】【Mybatis-Plus】AutoGenerator 代码生成器使用

本节讲述 mybatis-plus 的 AutoGenerator 代码生成器的使用。内容包括项目创建,依赖配置,数据库创建,和编码。注:MyBatis-Plus (MP) 是一个基于 MyBatis 的强大且易用的持久层框架扩展,旨在简化 MyBatis 的使用,提高开发效率,并提供了一系列强大的特性。无侵入式设计:MyBatis-Plus 在保留 MyBatis 原有功能的基础上进行扩展,不需要对原有代码进行大量修改,可以无缝集成到现有的 MyBatis 项目中。

2022-08-31 15:22:22 2272

原创 【虚拟机】【ssh】本地ssh连接虚拟机 - Xshell配置与虚拟机ip配置

之前谈到如何创建虚拟机。这节谈将如何配置ip等信息,使本地ssh连接上虚拟机。

2022-08-14 16:06:50 4854

原创 【虚拟机】vmware虚拟机创建 centos7系统配置

vmware虚拟机网上可以下载,本节主要记录一下,如何创建虚拟机,并安装centos操作系统,然后运行虚拟机。注:VMware Workstation 是 VMware 公司开发的一款功能强大的桌面虚拟化软件,它允许用户在单一的物理计算机上运行多个不同的操作系统(如 Windows、Linux 等)作为独立的虚拟机。这些虚拟机可以共享主机系统的硬件资源,但彼此之间是隔离的,因此可以在一台电脑上同时运行多种操作环境。

2022-08-13 23:16:35 694

原创 【JMeter】jmeter测试 - 上传多个图片/批量上传图片接口 CSV文件参数化方法

在网上查了一下,没有查到很满意的方法,这里记录了一个比较好用的方法。需要测试的接口,是直接将图片File放到请求体中。

2022-08-06 10:50:55 3777 2

原创 【Java并发】守护线程与setDaemon()

Java的守护线程(Daemon Thread)是一种特殊类型的线程,它的主要目的是为其他线程提供服务或者执行一些后台维护任务。守护线程无法独立存在,当进程中不存在非守护线程了,则守护线程自动销毁。守护线程通常用于执行那些不是程序主体部分,但在程序运行过程中需要持续进行的任务,比如垃圾回收器就是一个典型的守护线程,它在后台进行内存管理,Java可以通过调用 Thread.setDaemon(true) 方法将一个线程设置为守护线程。

2022-07-17 12:48:10 451

原创 【手写一个Tomcat】SimpleTomcat-01 - SimpleTomcat-02

本文实现一个简易Tomcat,遵循【Tomcat】第八篇:150代码手写Tomcat…注:Tomcat实现了 Java Servlet 和 JSP 规范, 是一个开源、轻量级的 Java Web 应用服务器,主要用于运行和部署基于 Java Servlet、JavaServer Pages (JSP)、WebSocket 和 Java Expression Language (EL) 的应用程序。

2022-06-26 21:58:03 226

原创 【Spring Security】springboot + mybatis-plus + mysql 用户logout登出后token失效

【Spring Security】springboot + mybatis-plus + mysql 从数据库读取用户信息验证登录【Spring Security】springboot + mybatis-plus + mysql 密码加密存储下的数据库用户验证登录【Spring Security】springboot + mybatis-plus + mysql 用户token验证登录功能。

2022-06-25 09:17:54 1283

原创 【技术碎片】jcraft.jsch 文件传输工具与方法

记录基于jcraft.jsch的文件传输工具与方法基于springboot,mybatis-plus,PostgreSQL,jcraft.jsch

2022-06-15 22:57:15 2026 1

原创 【技术碎片】重名文件后缀重命名方法

运行结果如下,可以看到同样是从0搜索到200的后缀名,线性搜索的重名文件重命名后缀运行耗时32ms,指数扩散二分搜索的的重名文件重命名后缀则耗时0ms,非常迅速。如果存在重名,则在后面(扩展名的前面)加后缀 “_1”, “_2”, “_3”, …直到文件名不重复为止,以此来确保文件名的唯一性。重名文件加后缀重命名过滤。

2022-06-08 22:38:40 603

原创 【Mybatis-Plus】【PostgreSQL】List<T> 类型数据如何存数据库

实现基于postgresql,springboot,spring mvc和mybatis-plus,原理是将List<T>转为JSONArray类型,数据库对应字段为json类型,即可完成存储。建表如下:有entity如下:核心实现过程:

2022-06-08 22:03:07 2389

原创 【Java并发】线程池多线程调用 限定超时时间的future.get()串行阻塞式运行

线程池多线程任务调用,串行阻塞式运行,虽然慢但稳妥要求单个线程运行时必须要有超时时间,超时则放弃运行下一个任务这里的实现仅能用,不完善Main.java运行运行结果:

2022-06-05 12:58:51 6660 2

原创 【Spring Security】springboot + mybatis-plus + mysql 用户token验证登录功能

前言token验证登录功能配置application.propertiesspring.security.jwt.secret=e9948PG02lURjvhjotDGQ6ksRdz3920MEfdy0q6HIszaxNNXw5D1yGq7l3zVWVfUbPBSA56JMqawy7Mt2vPDx5AveuOHHpT0uZB# token expire time limit 20000ms = 20s, 14400000ms = 14400s = 240m = 4hspring.se

2022-05-29 17:54:21 1449

原创 【Spring Security】springboot + mybatis-plus + mysql 密码加密存储下的数据库用户验证登录

前言配置编码config.SecurityConfigpackage org.sample.config;import com.alibaba.fastjson.JSON;import org.sample.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Bean;import or

2022-05-29 16:51:50 1243

原创 【Spring Security】springboot + mybatis-plus + mysql 从数据库读取用户信息验证登录

实现spring security 从数据库读取用户信息验证登录,仅仅能用,不含前端。

2022-05-20 21:50:43 1573 1

原创 【Spring Security】Postman调用时无授权与CSRF验证

Spring Security 是一个强大的、高度可定制的 Java 安全框架,它为基于 Spring 的应用程序提供了全面的安全服务和解决方案。

2022-05-16 11:24:30 1540

pyminer 基于Python的数据处理分析工具

pyminer 开源、跨平台数据处理分析方案。 pyminer 是一款基于Python的数据处理分析工具,它提供一组强大的功能

2023-12-03

EasyScreenLive是一款简单、高效、稳定的集采集,编码,组播,推流和流媒体RTSP服务于一身的同屏功能组件,具低延时

EasyScreenLive是一款简单、高效、稳定的集采集,编码,组播,推流和流媒体RTSP服务于一身的同屏功能组件,具低延时,高效能,低丢包等特点。目前支持Windows,Android平台,通过EasyScreenLive我们就可以避免接触到稍显复杂的音视频源采集,编码和流媒体推送以及RTSP/RTP/RTCP/RTMP服务流程,只需要调用EasyScreenLive的几个API接口,就能轻松、稳定地把流媒体音视频数据RTMP推送给EasyDSS服务器以及发布RTSPServer服务,RTSP同屏服务支持组播和单播两种模式。

2023-06-30

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

TA关注的人

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