xmaaaa
码龄7年
关注
提问 私信
  • 博客:99,568
    99,568
    总访问量
  • 53
    原创
  • 73,670
    排名
  • 19
    粉丝
  • 0
    铁粉

个人简介:后端开发

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:新西兰
  • 加入CSDN时间: 2017-09-23
博客简介:

weixin_40364421的博客

查看详细资料
  • 原力等级
    当前等级
    1
    当前总分
    68
    当月
    1
个人成就
  • 获得41次点赞
  • 内容获得6次评论
  • 获得105次收藏
  • 代码片获得106次分享
创作历程
  • 3篇
    2024年
  • 1篇
    2021年
  • 7篇
    2020年
  • 24篇
    2019年
  • 19篇
    2018年
成就勋章
兴趣领域 设置
  • Java
    java
  • 后端
    后端分布式中间件
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

KMP算法

KMP(Knuth-Morris-Pratt)算法是一种用于在文本字符串中查找模式(子字符串)位置的高效字符串匹配算法。与传统的暴力匹配算法相比,KMP算法通过利用已经匹配过的信息来避免重复比较,从而提高了匹配效率。从上面的例子可以看出,KMP能大大加快我们匹配时移动的速度,解决了字符串匹配的效率问题。很容易理解,如果我们暴力法的话,此时就需要从第二个字符,从头开始继续比较,效率很低。知道概念之后,我们可以利用前后缀,来计算模式P的部分匹配表(LPS array)A 对应 A,匹配。A 对应 A,匹配。
原创
发布博客 2024.09.01 ·
680 阅读 ·
5 点赞 ·
0 评论 ·
17 收藏

排序算法--堆排序

堆排序是一种利用堆数据结构实现的排序算法。首先,它将待排序的数组构建成一个大顶堆或小顶堆。然后,通过不断将堆顶元素(最大或最小)与末尾元素交换并重新调整堆,使得数组逐渐有序。
原创
发布博客 2024.08.29 ·
378 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

mac/windows 软件推荐

推荐一些这么多年mac/windows 平台搜集使用下来比较好用,提升效率的软件。
原创
发布博客 2024.08.27 ·
685 阅读 ·
9 点赞 ·
0 评论 ·
2 收藏

Spring 启动详解

Springboot启动流程方法入口: org.springframework.boot.SpringApplication#run(java.lang.String…)StopWatch 开启,公开总运行时间和每个命名任务的运行时间getRunListeners(args) : 获取SpringApplicationRunListener 监听者prepareEnvironment(): 准备环境,并发送环境准备事件给相关listeners,这时候有ConfigFileApplicationLi
原创
发布博客 2021.04.20 ·
315 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

ubuntu 下启用ipv6

安装Teredo隧道客户端sudo apt-get install miredosudo miredo用ifconfig 确定是否安装正确查看teredo服务状态sudo systemctl status miredo.service 测试方法:ping6 ipv6.google.com或者 访问 http://test-ipv6.com/ 网站注意点以下只是一些注意点,可能不需要更改也可以访问,按需修改:1.更改miredo配置文件sudo vim /etc/miredo
原创
发布博客 2020.09.28 ·
2201 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

mybatis自动生成代码工具,字段注释

1. 配置工具包maven依赖<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.2</version></dependency><build> <plugins>
原创
发布博客 2020.08.03 ·
1250 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

RSA非对称加密

起源最开始,密码学都是基于对称密钥,也就是发送者使用特定密钥加密信息,而接收者使用相同密钥解密。这就造成了一个问题,如果需要和很多人进行通信,那么就要跟每个人都有一对密钥,保管很多不同的钥匙,非常难以管理。RSA就诞生了,它是非对称加密,有不同的加密密钥与解密密钥。它原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥使用有两种使用方式:公钥加密、私钥解密假设B有一对公钥私钥,公钥公开给所有人,A要给B发送一段信息,那么使用B的公钥加
原创
发布博客 2020.07.13 ·
319 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存穿透、缓存击穿、缓存雪崩

redis作为基于内存的数据库,并且提供一定的持久化功能,被我们广泛用于缓存,加锁等场景中,作为中间件用于解决数据库读写慢等问题。但是引入redis又有可能出现缓存穿透,缓存击穿,缓存雪崩等问题。缓存穿透描述: 某个key对应的数据在数据源并不存在,每次针对此key的请求都会到数据库,从而可能造成数据库压力过大,压垮数据库。比如请求伪造一个缓存中可能不存在的id ,例如负数,uuid 等解决方法:布隆过滤器:布隆过滤器能实现判断一定不存在的数据,将所有可能存在的数据哈希到一个足够大的b
原创
发布博客 2020.06.21 ·
130 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

uefi引导windows + linux双系统安装

最近突然想玩一玩linux系统,所以选择安装windows + ubuntu 双系统,因为这是第一次安装,所以这篇博客记录一下安装过程。我就按照官网已经有教程来尝试吧先确定安装要准备好的条件要安装系统首先需要下载镜像, 下载网址:官网下载系统镜像,也可以点击选择替代版本找到所需要的版本,这里我选择ubuntu16.04这里我试了一下,下载特别慢,还是去国内镜像网站下载,...
原创
发布博客 2020.03.28 ·
833 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

excel导出加密

今天需要写一个excel导出加密,具体实现方法是先将文件导出,再获取文件,加密后导出成新的文件,删除或替换原文件。依赖包poi 一定要注意最好是3.17,我之前用的是4.1.0打开会显示文件损坏,还没找到原因。加密代码如下,参考用的是:https://poi.apache.org/encryption.htmlXML-based formats - Decryption/** ...
原创
发布博客 2020.02.20 ·
1443 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

MultipartEntityBuilder 中文乱码,File转MultipartFile

将file先转为fileItem再转为MultipartFileFile file = new File("*****");DiskFileItem fileItem = new DiskFileItem("file", "text/plain", false, file.getName(), (int) file.length() , file.getParentFile()); ...
原创
发布博客 2020.02.20 ·
810 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java8中map排序问题及方法使用

Map<String, List<String>> itemId2userIds = Maps.newHashMap();List<String> sortItemIds = itemId2userIds.entrySet().stream().sorted(Comparator.comparingInt(s -> s.getValue().size(...
原创
发布博客 2019.12.29 ·
670 阅读 ·
2 点赞 ·
0 评论 ·
2 收藏

postman请求传参为Boolean布尔值

今天使用postman调用接口时,传参为Boolean时遇到了问题:使用传输方式:{ "flag": true, "key": "bonus_gray", "secret": ".."}方法:public String markSwitch(Boolean flag, String key, String secret) {...}报错信息:java.lang.Runtime...
原创
发布博客 2019.12.04 ·
9656 阅读 ·
3 点赞 ·
0 评论 ·
6 收藏

linux 常用命令

目录:cd:变换目录pwd:显示目前的目录mkdir:创建一个新的目录rmdir:删除一个空的目录. : 代表此层目录… : 代表上一层目录– : 代表前一个工作目录~ : 代表『目前使用者身份』所在的家目录~account : 代表 account 这个使用者的家目录(account是个帐号名称)文件查看:cat 由第一行...
原创
发布博客 2019.11.30 ·
146 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

spring线程池ThreadPoolTaskExecutor

概述多线程编程时,频繁的创建线程和销毁进程会降低系统运行的效率,也不好控制容易出错,所以线程池产生,ThreadPoolTaskExecutor是spring中的线程池技术,它主要是使用jdk中的ThreadPoolExecutor进行实现。通常使用线程池是为了提高系统效率和吞吐量,做一些异步操作ThreadPoolExecutor的构造方法public ThreadPoolExecutor...
原创
发布博客 2019.10.16 ·
274 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

sql 相关问题记录

本篇博客主要记录平时写代码过程中的sql语句或者碰到的问题insert重复键问题有三种方法:INSERT IGNORE INTO: 如果有条目匹配unique key或primary key,忽略不插入注意点:如果出现问题,MySQL将不会显示任何错误,因此无法处理错误,自动增量键仍会增加。INSERT REPLACE INTO:替换条目,如果有条目匹配unique key或prima...
原创
发布博客 2019.09.19 ·
199 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

n叉树的遍历

前序遍历: 先遍历根节点 再遍历根节点1,3,5,6,2,4后序遍历: 先遍历根节点 再遍历子节点5,6,3,2,4,1java递归遍历方法private void preorder(Node root) { if (root == null) return; // 此处前序遍历 for (Node node : root.children) { ...
原创
发布博客 2019.08.29 ·
146 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redisTemplate常用方法记录

我们平时使用redis有以下几种用途:缓存 public void set(String key, Object object, int expireSecond) { ValueOperations<String, Object> ops = redisTemplate.opsForValue(); ops.set(key, object, expir...
原创
发布博客 2019.08.21 ·
242 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

java8 stream 记录

常用方法filter(T -> boolean) 保留 boolean 为 true 的元素distinct() 去重sorted(Comparator.comparing()) / sorted((T, T) -> int) 排序map(T -> R) 将流中的每一个元素 T 映射为 R(类似类型转换)limit(long n) 返回前 n 个元素skip...
原创
发布博客 2019.07.25 ·
198 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

grafana

简介Grafana是一个功能齐全的度量仪表盘和图形编辑器工具,他一般是和一些时序数据库进行配合来展示数据。mac下用brew安装brew updatebrew install grafana安装完成后运行grafana,默认端口3000// startbrew services start grafana// stopbrew services stop grafana然后就可...
原创
发布博客 2019.07.03 ·
851 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多