自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

西凉的悲伤博客

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

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

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

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

2023-09-07 16:37:57 728

原创 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 2705

原创 python 使用 openpyxl 处理 Excel 教程

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

2023-06-22 17:25:32 9285

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

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

2023-06-19 18:11:42 4144

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

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

2023-03-27 15:12:02 4497

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

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

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

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

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

2023-03-16 18:01:23 2881 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 17292 41

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

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

2021-04-21 22:56:35 5304 4

原创 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 6367 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 13778 1

原创 SpringBoot 缓存 Caffeine使用

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

2021-03-18 11:56:35 5550 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 8916 5

原创 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 17093 13

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

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

2021-02-25 14:26:06 6378 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 958 3

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

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

2021-02-03 10:06:38 5918 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 518 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 11720 32

原创 ffmpeg的下载及安装

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

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

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

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

2020-12-29 11:23:22 3882 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 10201 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 14534 31

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

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

2020-12-09 11:59:43 8605 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 3418

原创 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 421 1

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

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

2020-09-09 16:07:29 10818 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 754

原创 git常用命令

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

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

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

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

2019-11-16 14:29:03 5654

原创 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 1946

原创 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 6733

原创 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 1365 1

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

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

2019-03-09 17:14:05 1067

原创 javaFX属性绑定

类型绑定属性抽象类绑定属性实现类intlongfloatdoublebooleanStringListSetMap。

2024-02-29 14:14:04 741

原创 Android apk安装包反编译——apktool工具

到这里你已经得到了一个修改后的 apk,但是这个编译后的 apk 还无法安装到手机上,因为修改了文件,在安装时手机会对安装包里的签名进行比对签名,如果签名对不上说明apk被篡改了,就不会进行安装。一般 apk 都会进行加固,即对 Dex 加密,Dex 就是格式的文件里是 apk 的代码,加密后反编译是看不到项目主要代码的,从而保证了 apk 的安全性。使用 apksigner.jar 然后用 new.keystore 密钥库对 sign1.apk进行签名,最后生成 sign2.apk。

2023-12-26 16:28:29 2686 1

原创 Android apk安装包反编译——jadx工具

是一款功能强大的反编译工具,使用起来简单方便(拖拽式操作),不光提供了命令行程序,还提供了 GUI 程序。一般情况下,我们直接使用 GUI 程序就可以了jadx 支持 Windows、Linux、 macOS,能够帮我们打开.apk, .dex, .jar,.zip 等格式的文件。

2023-12-26 10:42:11 1016

原创 复制代码到 IDEA 中复制的每行代码前多了两个空格缩进解决

这还只是复制了几行代码,如果复制很长的 xml 或代码到 IDEA 中,势必会导致所有缩进都增加,导致代码变乱,如果通过 git 提交上去,会造成版本管理不便,即使你没改动的代码,提交记录上也会显示多余的空格缩进。可以发现原来的空格缩进是 2 个,现在变成了 4 个。

2023-12-21 16:48:28 942

原创 GitBook安装及使用——使用 Markdown 创建你自己的博客网站和电子书

GitBook是一个命令行工具,用于使用 Markdown 构建漂亮的博客网站、电子书籍,相比于VuePressdocusaurus等工具,它更简洁,用起来也更方便。JavaFX 前言这个博客网站就是使用 GitBook 生成的,你只需要使用 Markdown 来书写文章内容,其他的 GitBook 帮你搞定。另外关于 GitBook 的其他信息可参考 github 地址 :gitbook。

2023-12-19 17:54:01 1654

原创 VuePress安装及使用——使用 Markdown 创建你自己的博客网站和电子书

VuePress是一个以 Markdown 为中心的静态网站生成器。你可以使用 Markdown 语法来书写内容(如文档、博客等),然后 VuePress 会帮助你生成一个静态网站来展示它们。例如:官网的VuePress 快速开始就是采用 VuePress 生成的,你只需要使用 Markdown 来书写文章内容,其他的 VuePress 帮你搞定。VuePress 相比于其他以 Markdown 为中心的静态网站生成器,如、GitBookdocusaurusmdBook。

2023-12-18 11:27:59 883 3

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关注的人

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