自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西凉的悲伤博客

且将新火试新茶,诗酒趁年华。

  • 博客(257)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 java 前缀树的实现,敏感词的匹配和标记

前缀树是一种多叉树结构,经常用于快速检索匹配、敏感词匹配替换、文章多词语匹配查找高亮等场景。(1).前缀树的根节点不包含字符;(2).前缀树上除叶子节点外,任意一个节点都包含一个字符,并且任意节点下都可能含有n个子节点;(3).前缀树上除根节点外每个节点都应有一个标识来表明其是否是一个词的结尾;(4).前缀树上的叶子节点一定是一个词的结尾;

2023-09-07 16:37:57 152

原创 grpc 4种模式介绍及java代码示例

🐹gRPC:grpc 是 Google 开发的一种开源 RPC(Remote Procedure Call Protocol 远程过程调用的协议)框架,在 gRPC 中,客户端应用程序可以像本地对象一样直接调用不同机器上的服务器应用程序上的方法,从而使您可以更轻松地创建分布式应用程序和服务。如果你的 java 项目里有 A 和 B 两个类,A 中有 aa 方法,B 中有 bb 方法,你可以很容易的在 aa 里调用 bb 方法。

2023-07-12 16:32:59 885

原创 python 使用 openpyxl 处理 Excel 教程

python 操作excel 的库有很多 ,有的库只能读取 xsl 格式,比如 xlrd 库;有的库只能写 xsl 格式,比如 xlwt 库;有的只能读写 xslx 格式,比如 openpyxl 库。综合各库及 xslx 格式比较常见,所以本文主要讲解 openpyxl 库对 xslx 格式的 excel 操作。

2023-06-22 17:25:32 3263

原创 selenium自动化测试教程——java爬取数据

selenium是一个用于自动化测试 Web 应用的工具集 ,它可以模拟用户自动去浏览器网页上进行点击、输入、选择下拉值复选框、鼠标移动、任意 JavaScript 执行等等操作。selenium:基于浏览器的回归自动化套件和测试,你可以使用 Java、Python、JavaScript、Ruby、JavaScript、C# 这些语言中的一种来编写代码,Selenium WebDriver 会根据代码去打开浏览器自动去网页上进行操作和测试。

2023-06-19 18:11:42 1729

原创 JUnit 5单元测试(三)—— Mockito 模拟

上一篇讲了JUnit 5单元测试(二)—— 断言,书接上文开始 JUnit 5单元测试(三)—— Mockito 模拟想象下面这几种情况你该怎么单元测试:1.A方法去数据库查询了数据进行了一些处理,该怎么单元测试;2.在微服务项目中,A方法中调用了远程微服务B方法(或者B方法还没写好),该怎么单元测试;3.A方法中从 redis 或者 Kafka 消息队列里取了一些数据处理,该怎么单元测试;

2023-03-27 15:12:02 1317

原创 JUnit 5单元测试(二)—— 断言

上一篇讲了JUnit 5单元测试(一)—— 基本配置,书接上文开始 JUnit 5单元测试(二)—— 断言断言就是专门用来验证输出和期望是否一致的一个工具。换句话说断言就是判断一个方法所产生的结果是否符合你期望的那个结果。

2023-03-17 17:58:59 1196 1

原创 JUnit 5单元测试(一)—— 基本配置

它会帮你执行如下过程 validate --> compile --> test --> package --> integration-test --> verify --> install ,也就是说它会帮你执行验证、编译、单元测试、打包、整合测试、最后再把生成的jar包发布到本地仓库,换句话说它会帮你执行 install 之前的所有操作,最后执行 install。它只会帮你把生成的jar包发布到本地仓库,也就是说它只会帮你执行 install ,其前面的操作它不会帮你执行。

2023-03-16 18:01:23 1289 1

原创 文本对比,文本差异并排对比显示实现

目录一、准备二、后端实现三、前端实现一、准备1.Java使用的库 java-diff-utils2.前端使用的库 diff2html二、后端实现用java-diff-utils 封装了一个工具类 DiffHandleUtils.javaimport com.github.difflib.UnifiedDiffUtils;import com.github.difflib.patch.Patch;import java.io.File;import java.io.IOException;

2021-12-07 13:32:57 12057 38

原创 java关于多线程并发和异步操作由浅入深

目录前言一、初识多线程多线程最基本的两种实现方式**- 方式一:- 方式二:多线程优点:二、匿名函数实现无返回值的多线程异步调用三、CompletableFuture实现多线程异步调用无返回值的异步调用有返回值的异步调用四、四种线程池的使用1.newFixedThreadPool定长线程池2.CachedThreadPool可缓存线程池3.newSingleThreadExecutor单线程化线程池4. newScheduledThreadPool周期性线程池无返回值的延时线程示例:有返回值的延时线程示例:

2021-04-21 22:56:35 3458 2

原创 java stream优雅的操作流,stream的常见操作

这里写目录标题ListList<String> 转 List<Integer>如果 strList 中全是数字字符串,可通过如下转换为 integerList List<String> strList = new ArrayList<>(Arrays.asList("7","8","9")); List<Integer> integerList = strList.stream().map(v -> Inte

2021-04-12 11:14:45 5241 1

原创 java优雅的处理日期时间,LocalDate、LocalTime、LocalDateTime使用

目录前言获取当前时间日期和时间格式化字符串与LocalDate、LocalTime、LocalDateTime之间的互换判断平年和闰年计算指定日期的月份有多少天比较两个时间的早晚计算两个时间相差多久比较两个日期的早晚计算两个日期相隔多久比较两个日期时间的早晚计算某年某月有几个星期五前言jdk8之前日期时间相关的操作大多用的是Date类或者Calendar类。比如:Date date = new Date();SimpleDateFormat df = new SimpleDateFormat("y

2021-04-06 17:44:52 9946 1

原创 SpringBoot 缓存 Caffeine使用

Redis和Caffeine的区别相同点:两个都是缓存的方式不同点:redis是分布式缓存,通过网络将数据存储到redis服务器内存里caffeine是将数据存储在本地应用里caffeine和redis相比,没有了网络IO上的消耗联系:一般将两者结合起来,形成一二级缓存。使用流程大致如下:先去一级缓存中查找数据(caffeine-本地应用内),如果没有的话,去二级缓存中查找数据(redis-内存),再没有,再去数据库中查找数据(数据库-磁盘)Spring Boot

2021-03-18 11:56:35 5191 1

原创 Java BufferedImage转换为MultipartFile

Java里读取图片或调整图片大小可使用BufferedImage进行操作(参考我另一篇文章Java修改图片大小尺寸),但有时候我们需要将BufferedImage转为MultipartFile进行其他操作可如下转换:1.新建类实现MultipartFile接口import org.springframework.web.multipart.MultipartFile;import java.io.File;import java.io.IOException;import java.io.Inpu

2021-03-04 09:33:01 7749 4

原创 Java修改图片大小尺寸图片缩放

工具类ImageUtils:package utils;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.IOException;public class ImageUtils { /**

2021-03-03 18:29:28 14144 11

原创 Java实现彩票大乐透、双色球机选号

每天下班途中经过体彩店,心情好就会买几注,也就几块钱,全当是消遣,好歹也算参与了好几十个亿的大项目一般机选为主,也就是随机号。但每次工作人员给随的号都不太满意,总感觉是导致与奖擦肩而过的原因,当然,开个玩笑了。然后就在想,作为一个开发,自己也可以写个大乐透、双色球机选代码,而且还能在枯燥的代码中找点乐趣。效果如下:代码:import java.util.*;import java.util.stream.IntStream;import static java.util.stream.Col

2021-02-25 14:26:06 5820 1

原创 Springboot 操作 redis 中的String、Set、Map、List、实体类,上传文件

一、引入依赖: <!-- redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- 对象池,使用r

2021-02-22 15:22:38 800 3

原创 Java使用OpenOffice将office文件转换为PDF

问题:目前遇到需求:将上传的文件生成一个缩略图,让用户能够直观的看到文件第一页,如Word、PPT、Excel、视频文件等。如果是视频文件可以使用ffmpeg进行截取视频开头的图片作为缩略图;如果是Word、PPT、Excel文件需要将文件转化为PDF再生成缩略图。本文针对第二点进行说明。使用OpenOffice进行文件的转化1.准备工作:OpenOffice官网下载JODConverter官网下载或者为方便下载,我已将上面两个上传了百度云 百度云下载(提取码:ndiq)

2021-02-03 10:06:38 4573 12

原创 Java实现kafka生产者和消费者

需要的依赖: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.7.0</version> </dependency>生产者: //定义topic

2021-01-27 10:15:17 427 1

原创 Java使用ffmpeg进行视频格式转换、音视频合并、播放、截图

上一篇进行了ffmpeg的下载及安装本篇在上一篇的基础上进行代码封装,Java里使用ProcessBuilder模拟命令行调用ffmpeg进行视频格式转换、音视频合并、播放、截图。需先安装ffmpeg, fmpeg官网下载 或 百度云 (提取码:ff8o)FfmpegUtils封装类:ffplay、ffmpeg、ffprobe是安装的ffmpeg路径。import java.io.BufferedReader;import java.io.File;import java.io.IOExc

2021-01-19 17:39:22 9799 32

原创 ffmpeg的下载及安装

最近在处理一些音频数据,ffmpeg是一款非常好用处理音视频的工具包。那什么是ffmpeg呢?FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序,可以结合Java开发一些处理视频音频的功能。1.ffmpeg下载首先打开 ffmpeg官网下载然后点击 windows 对应的图标,再点击下面的”Windows EXE File”随便选一个点进去选择一个版本下载。2.下载后解压,配置环境变量下载解压后就能在 bin 文件夹下能看到三个可执行程序:ffmpeg、ffpl

2021-01-16 20:06:39 127202 38

原创 新版本Fiddler抓包神器功能介绍

老版本的fiddler界面长这样:新版本的界面:无论从功能的化繁为简还是界面的优化和简洁度都比上一代好太多了!使用介绍:1.Live Traffic :抓取开关,打开会抓取电脑上所以应用的请求,关闭后不会抓取。抓取的请求以列表形式显示在下方,右上角是请求的参数,右下角是请求的响应。电脑关机时记得要关闭Live Traffic按钮,否则开机的时候电脑默认的上网代理是fiddler,会上不了网,这个时候电脑查找代理关闭代理服务器就好了。2.抓包时url过滤:有时候我们只想抓取或显示指定的

2020-12-29 11:23:22 3261 4

原创 关于抖音抓包的一些分析和抖音视频批量下载

上一篇介绍了抓包软件的使用:Fiddler+夜神模拟器+xposed+justTrustMe手机抓包这一篇介绍下对抖音里**“喜欢”**的视频,也就是点了红心的视频列表接口的一些分析。1.根据上一篇的抓包软件介绍,我们先模拟器上登录抖音开始抓包。经过分析发现“喜欢”的视频列表接口是:https://aweme.snssdk.com/aweme/v1/aweme/favorite/过滤下url:headers参数:X-Gorgon:请求所需的加密参数X-Tt-Token:在搜索接

2020-12-25 18:11:26 8695 5

原创 Fiddler+夜神模拟器+xposed+justTrustMe手机抖音抓包

一、Fiddler下载安装Fiddler是一款抓包神器,可以让电脑、手机、平板上所有应用发送的请求先通过Fiddler再发送到服务器,服务器返回的应答先通过Fiddler再返回给应用,相当于一个邮寄员。Fiddler官网下载 或者 百度云(提取码:i8ex)1.Live Traffic是抓取开关,打开后电脑所有的请求就经过Fiddler代理,Fiddler就开始记录并抓取所有的请求。关闭Live Traffic或关闭Fiddler软件会退出Fiddler代理。2.勾选Capture HTTPS t

2020-12-23 19:40:40 12753 30

原创 Java制作计算器实现加减乘除

不断递归先运算完乘除,再从左向右按顺序计算加减。Java制作计算器主要需要考虑的是加减乘除的。需要先计算1.7*4/5,这种写法比较复杂不易理解。最后从左往右计算加减。

2020-12-09 11:59:43 7954 5

原创 elasticsearch对聚合后的结果排序

假设有三个人A、B、CA的文档是这样的:{“_index” : “customer_v2025”,“_type” : “customer_info”,“_id” : “105100015130”,“_score” : 0.0,“_source” : {“assets” : {“merge” : 10},“account_open_date” : {“normal” : 20191210},“customer_name” : “XXX”,“customer_id” : 1051

2020-11-19 17:53:43 3015

原创 Java字符串常见操作

indexOf(String str)返回字符串中某个字符串位置indexOf(char ch, int fromIndex)从某一位置开始查找某字符位置substring(int beginIndex )从指定位置返回后面的字符串substring(int beginIndex, int endIndex)截取两个指定位置间的字符字符串翻转lastIndexOf(String str)查找字符串中字符最后一次出现的位置通过下标获取字符串中对应下标的字符字符转数字判断字符是不是数字利用S.

2020-09-09 16:12:10 275 1

原创 Java排序,看这一篇就够了(List、Map、Object复合升序和降序)

数组排序、List排序、map排序、map根据value排序、map根据key排序

2020-09-09 16:07:29 1521 1

原创 java 使用POI操作Excel文件

用到的jar包:excel格式如下:读取:import org.apache.poi.ss.usermodel.CellType;import org.apache.poi.xssf.usermodel.XSSFRow;import org.apache.poi.xssf.usermodel.XSSFSheet;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileInputStream;import

2020-05-18 14:52:52 402

原创 git常用命令

git有很多操作并且命令很多,本文总结了常用的git操作情况以便使用git遇到问题时快速查询解决。

2020-02-24 22:39:29 568 1

原创 elasticsearch使用script进行两个字段比较搜索范围

一般用elasticsearch进行简单的范围查找是容易的,比如:查找期末考试分数>80的学生;查找期末考试分数在60到70的学生;通过elasticsearch的range可方便的查询GET /forum/article/_search{ "query": { "constant_score": { "filter": { "range": ...

2019-11-16 14:29:03 5307

原创 elasticsearch搜索与聚合常用DSL语句

主要了解query、bool(must、should、must_not)、term、match、range、filter、size、from、cardinality等。换句话说需要了解索引、类型、分词查询、精确查询、全文查询、排序、去重、求最大值、平均值、分页等,其实和数据库蛮相似的,理解着学习就好。下面是一些elasticsearch教程和参考的一些常用语法例子。https://es.xi...

2019-08-14 09:02:35 1878

原创 java连接oracle数据库实现增删改查

java连接oracle数据库实现增删改查实现效果如图:数据库建表语句如下:create table book --创建图书表(id int primary key not null,isbn int,bookName varchar2(30),bookClassify v...

2019-07-18 16:24:18 6384

原创 java制作简单日历

输入年份和月份,输出当年当月的日历输入输出如下:主要思路1、判断平年闰年并判断2月的天数2、判断星期几 3、日期与星期的对应,输出代码如下:import java.util.Scanner;public class RiLi { public static void main(String[] args) { int sumDay=0; Scanner in=new ...

2019-06-24 11:26:38 1268 1

原创 java CSP测试里小明放学问题

java CSP测试里小明放学问题首先让我们来看看问题:题目说小明放学的时候能够在教室里看到回家路上的红绿灯状况和剩余倒计时时间,看完之后就回家了,要根据输入的红灯、绿灯、黄灯倒计时时间(样例是30、3、30),n(样例是8),以及后面n行的走一段路的时间和在教室看到的红绿灯状况来计算小明回家的时间。首先我们要知道红绿灯是怎么跳的?(请看我另一篇的小明上学问题)以样例为例:30,3,30...

2019-03-09 17:14:05 917

原创 XMLHttpRequest介绍

2.初始化使用 open 方法进行一些初始化配置,method 和 URL 是必传的,其余的是可选的。参数说明:method —— HTTP 方法。通常是 “GET” 或 “POST”,小写也可。URL —— 要请求的 URL,通常是一个字符串,也可以是 URL 对象。async —— 是否同步。如果不传默认为true,如果显式地设置为 false,那么请求将会以同步的方式处理。user,password —— HTTP 基本身份验证(如果需要的话)的登录名和密码。使用 send 方法就会建立连

2023-09-18 15:19:22 265

原创 Java常见面试题

分布式事务:在分布式系统中一次操作需要由多个服务协同完成,这种由不同的服务之间通过网络协同完成的事务称为分布式事务。例如:小明给张三转账100,A服务器上要先去A数据库扣100,然后B服务器上B数据库加100,两个操作要么都成功,要么都失败。常见的分布式事务解决有:TCC、本地事务表、MQ事务消息等。七种常见分布式事务详解类加载器是实现通过类的权限定名获取该类的二进制字节流的代码块。启动类加载器:负责加载Java核心类库,无法被Java程序直接引用。

2023-09-17 17:50:08 322

原创 GIthub 无法访问使用Watt Toolkit加速

Watt Toolkit 是一款加速软件,原名是 Steam++,后来改名为 Watt Toolkit,其可以让原本无法访问的 Steam 游戏社区、 GitHub 、谷歌验证码等国内难以访问的网页正常访问。下载安装后勾选 GIthub ,点击一键加速,然后你的浏览器就可以访问 Github 啦。

2023-08-27 18:10:04 643

原创 把Android手机变成电脑摄像头

使用 DroidCam,你可以将手机作为电脑摄像头和麦克风。一则省钱,二则可以在紧急情况下使用,比如要在电脑端参加一个紧急会议,但电脑却没有摄像头和麦克风。DroidCam 的安卓端分为免费的 DroidCam 版和收费的 DroidCamX版(支持高清),都需要去谷歌商店下载,且需要绑定手机。另外 ,需要PC客户端(Windows 和 Linux 客户端均可用)配合使用,[DroidCam PC 客户端官网下载]](https://www.dev47apps.com/)

2023-08-25 14:02:51 6469 1

原创 字符集与字符编码

在计算机中,所有的数据在存储和运算时都要使用二进制数表示,例如,像 A、B、a、b等52个大小写字母以及0、1等数字还有一些常用的符号如 $、#、@ 等。具体用哪些二进制数字表示哪个符号,每个人都可以约定自己的一套规则,这就叫编码规则。而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就制定了ASCII编码( ASCII 由 ANSI 制定),统一规定了上述常用符号用哪些二进制数来表示。

2023-08-23 13:30:31 93

原创 SpringBoot 解决跨域问题

浏览器在解析发送的请求时,要求浏览器的路径与发送的请求的路径必须满足三个要求,即请求的协议、域名、端口号都相同,满足同源策略,才可以访问服务器,否则,只要有一个不相同,那么都是非同源就会报错。当我们请求一个接口的时候,浏览器控制台出现如:Access-Control-Allow-Origin 报错提示信息的时候说明请求跨域了。一般跨域问题可以后端修改代码解决,也可以前端通过代理解决。

2023-08-19 21:55:08 676

Office XML(SpreadsheetML)测试xml文件

Office XML(SpreadsheetML)测试xml文件。具体使用参考文章:https://blog.csdn.net/qq_33697094/article/details/125265240

2022-08-04

Mergely文本对比实现

Mergely文本对比实现,包含了js、css。可集成到自己的项目中,具体使用可参考我的博客:https://blog.csdn.net/qq_33697094/article/details/121767084

2022-04-15

apache-tomcat-8.5.69.zip

apache-tomcat-8.5安装包

2021-08-09

gradle-7.2-rc-1-all.zip

用于在Linux上安装gradle,最新版的gradle7.2

2021-08-09

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

TA关注的人

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